在读写文件的过程中,Filestream只可以进行以字节为单位原始数据流进行读写操作,为此,C#中提供了功能更加强大的StreamReader/ StreamWriter来支持文件的读写. StreamReader/ StreamWriter可以进行以字符为单位的数据读写操作..
一. 用StreamReader的构造函数
StreamReader有很多的构造函数:在这里只列出两个常用和比较常见的
StreamReader sr=new StreamReader (Stream); Stream可以是Filestream;
StreamReader sr=new StreamReader (String); String为指定的文件名初始化 StreamReader 类的新实例。
例如:
//demo1
FileStream filest = new FileStream(@"c:/abc.txt", FileMode.Open, FileAccess.ReadWrite); StreamReader sr = new StreamReader(filest);
//demo2
StreamReader another = new StreamReader(@"c:/abc.txt");
两个StreamReader都指向同一个文件.
StreamReader读取文件中的数据的代码:
FileStream filest = new FileStream(@"c:/abc.txt", FileMode.Open, FileAccess.ReadWrite);
StreamReader sr = new StreamReader(filest);
string strLine = sr.ReadLine();//读取文件中的一行
while(strLine!=null)//判断是否为空,表示到文件最后一行了
{
Console.WriteLine(strLine);
strLine = sr.ReadLine();
}
sr.Close();//关闭流
filest.Close();
二. StreamWriter
StreamWriter 专门用于的向文件中写数据的,它和StreamReader类似,只是一个负责向文件中写数据,一个负责向文件中读数据而已.
StreamWriter 构造函数也有很多.在这里只举例两个构造函数.
StreamWriter sr=new StreamWriter (Stream); Stream可以是Filestream;
StreamWriter sr=new StreamWriter (String); String为指定的文件名初始化StreamWriter 类的新实例。
例如:
//demo1
FileStream filest = new FileStream(@"c:/abc.txt", FileMode.Open, FileAccess.ReadWrite); StreamWriter sw = new StreamWriter (filest);
//demo2
StreamWriter another = new StreamWriter (@"c:/abc.txt");下面的例子可以让大家掌握写文件的方法.
FileStream filewriter = new FileStream(@"C:/abc.txt", FileMode.Append, FileAccess.Write);
以追加的方式打开文件,并进行写入操作.
StreamWriter sw = new StreamWriter(filewriter); 构造函数;
for (char mychar = 'a'; mychar <= 'z'; mychar++)
{
sw.Write(mychar);//将从a—z26个小写字母写入文件中.
}
sw.Close();filewriter.Close();
//demo
FileStream filest = new FileStream(@"c:/abc.txt", FileMode.Open, FileAccess.ReadWrite);
StreamReader sr = new StreamReader(filest);
string strLine = sr.ReadLine();
while(strLine!=null)
{
Console.WriteLine(strLine);
strLine = sr.ReadLine();
}
sr.Close();
filest.Close();
下面是一些方法介绍
streamreader对象用于对文件进行读操作,streamwriter对象用于对文件进行写操作。streamwriter对象和streamreader对象的属性和方法基本类似。
1.创建streamwriter对象
创建streamwriter对象可以使用file对象的createtext方法或者streamwriter对象的构造函数。
(1)使用file对象的createtext方法
dim mikecatwriter as streamwriter
dim mikecatfile as file
mikecatwriter=mikecatfile.createtext("c:/mikecat.txt")
(2)使用streamwriter对象的构造函数
dim mikecatwriter as new streamwriter("c:/mikecat.txt")
2.streamwriter对象的主要方法
streamwriter对象实现对文件的写入操作,下面详细讲述具体的操作方法。
(1)close方法
和streamreader对象一样,close方法也是streamwriter对象必须使用的方法,在使用streamwriter对象执行完了写入操作后必须使用close方法来释放streamwriter对象操作的文件和其他系统资源。如果不使用close方法,其他的进程将不能对文件进行任何操作
sub close()
(2)write方法
该方法用于向文件写入数据
sub write(string)
参数string可以是数字、字符或者字符串。无论写入的是字符还是数字,都当成字符串写入文件。
writeline方法
和streamreader对象的readline方法相对应,该方法用于写入一行数据
sub writeline(string)
参数string可以是数字、字符或者字符串。无论写入的是字符还是数字,都当成字符串写入文件。