文章导航PC6首页软件下载单机游戏安卓资源苹果资源

pc软件新闻网络操作系统办公工具编程服务器软件评测

安卓新闻资讯应用教程刷机教程安卓游戏攻略tv资讯深度阅读综合安卓评测

苹果ios资讯苹果手机越狱备份教程美化教程ios软件教程mac教程

单机游戏角色扮演即时战略动作射击棋牌游戏体育竞技模拟经营其它游戏游戏工具

网游cf活动dnf活动lol周免英雄lol礼包

手游最新动态手游评测手游活动新游预告手游问答

您的位置:首页技术开发.Net 专栏 → C#读写文本文件

C#读写文本文件

时间:2009/7/9 15:56:00来源:本站整理作者:我要评论(0)

     理论上,可以使用FileStream类读取和显示文本文件。前面已经介绍了这个类。上面显示NewFile.txt文件的格式不太容易理解,但这并不是FileStream类的问题——而在于我们在文本框中显示结果所使用的方式。
 
  如果知道某个文件包含文本,通常就可以使用StreamReader 和 StreamWriter类更方便地读写它们。这是因为这些类工作的级别比较高,特别适合于读写文本。它们执行的方法可以根据流的内容,自动检测出停止读取文本较方便的位置,特别是:
 

      ●这些类执行的方法可以一次读写一行文本(StreamReader.ReadLine() 和 StreamWriter.WriteLine())。在读取文件时,流会自动确定下一个回车符的位置,并在该处停止读取。在写入文件时,流会自动把回车符和换行符添加到文本的末尾。
 
  ●使用StreamReader 和 StreamWriter类,就不需要担心文件中使用的编码方式(文本格式)了。可能的编码方式是ASCII(一个字节表示一个字符)或者基于Unicode的格式,UNICODE、UTF7和 UTF8.Windows 9x系统上的文本文件总是ASCII格式,因为Windows 9x系统不支持Unicode,但Windows NT、2000、XP和2003都支持Unicode,所以文本文件除了包含ASCII数据之外,理论上可以包含Unicode、UTF7或 UTF8数据。其约定是:如果文件是ASCII格式,就只包含文本。如果是Unicode格式,就用文件的前两个或三个字节来表示,这几个字节可以设置为表示文件中格式的值的特定组合。
 
  这些字节称为字节码标记。在使用标准Windows应用程序打开一个文件时,例如Notepad 或 WordPad,不需要考虑这个问题,因为这些应用程序都支持不同的编码方法,会自动正确地读取文件。StreamReader类也是这样,它可以正确读取任何格式的文件,而StreamWriter类可以使用任何一种编码技术格式化它要写入的文本。另一方面,如果要使用FileStream类读取和显示文本文件,就不必自己处理这个过程了。
 1. StreamReader 
StreamReader用于读取文本文件。用某些方式构造一个StreamReader要比构造一个FileStream实例更简单,因为使用StreamReader时不需要FileStream的一些选项。特别是不需要模式和访问类型,因为StreamReader只能执行读取操作。除此以外,没有指定共享许可的直接选项,但StreamReader有两个新选项: 
需要指定不同的编码方法所执行的不同操作。可以构造一个StreamReader 检查文件开头的字节码标记,确定编码方法,或者告诉StreamReader该文件使用某个编码方法。 
不提供要读取的文件名,而为另一个流提供引用。 
最后一个选项需要解释一下,因为它涉及到把读写数据的模型建立在流概念上的另一个优点。StreamReader工作在相对比较高的级别上,如果有另一个流在读取其他源的数据,就要使用由StreamReader提供的工具来处理这个流,因为这个流包含文本,此时StreamReader就非常有用了。可以把这个流的输出传送到StreamReader上,这样,StreamReader就可以读取和处理任何数据源(不仅仅是文件)中的数据了。前面在讨论BinaryReader类时也讨论了这种情况。但在本书中,只使用StreamReader来直接连接文件。 
其结果是StreamReader有非常多的构造函数。而且,还有两个返回StreamReader引用的FileInfo方法:OpenText() CreateText()。下面仅说明其中一些构造函数。 
最简单的构造函数只带一个文件名参数。StreamReader会检查字节码标记,确定编码方法: 
StreamReader sr = new StreamReader(@"C:"My Documents"ReadMe.txt"); 
另外,如果指定UTF8编码方法: 
StreamReader sr = new StreamReader(@"C:"My Documents"ReadMe.txt",  
  Encoding.UTF8); 
使用类System.Text.Encoding上的几个属性之一

相关视频

    没有数据

相关阅读 C#中正则表达式使用教程C#多线程的相关概念C#程序的访问修饰符介绍利用C#远程存取Access数据库C#多线程应用探讨全面剖析C#接口编程之定义接口全面剖析C#接口编程之接口概述C#开发的两个基本编程原则的深入讨论

文章评论
发表评论

热门文章 没有查询到任何记录。

最新文章 什么是.NET中的TDD?ASP.NET AJAX入门简介 WebMatrix入门教程VC++2008中如何调用GetOpenFileName打开文件PlaySound函数在VC++6.0中如何播放音乐及声请问VC++回调函数怎么用

人气排行 嵌入式实时操作系统VxWorks入门教程ArrayList 与 string、string[] 的转换C#遍历整个文件夹及子目录的文件代码WebMatrix入门教程asp.net判断文件或文件夹是否存在c#判断数据NULL值的方法vc++6.0怎么写Windows简单窗口代码.net解决数据导出excel时的格式问题