这节讲StreamReader & StreamWriter,这两个类用于操作字符或者字符串,它将流的操作封装在了底层,相对来说用法比较简单,但是它不支持Seek()方法。

    先看一下代码:


FileStream fs = new FileStream("./demo.txt", FileMode.Open, FileAccess.ReadWrite);
StreamReader sr = new StreamReader(fs, true);

StreamWriter sw = new StreamWriter("./demo_copy.txt");

string data = string.Empty;
while ((data = sr.ReadLine()) != null)
{
Console.WriteLine(data);
sw.WriteLine(data);
}

fs.Dispose();
sw.Dispose();
sr.Dispose();


我们可以从构造函数中传入FileStream对象进行StreamReader/Writer对象的创建,也可以直接传入路径,它会在内部创建流对象。

    使用FileStream对象创建时,第二个参数是一个bool值,这个值指定是追加文件还是创建新文件:如果这个值为false,则创建新文件,或者截取现有文件并打开它;如果为true,则打开文件,保留原来的数据,若找不到文件,则创建一个新文件。

    StreamReader类对象,有一个Read()方法,用法和FileStream类对象类似,它另有一个ReadLine()方法,该方法以string形式,返回一行数据,并将指针指向下一行,直到最后返回为空。StreamWriter类对象也是一样的用法。


这是我的公众号二维码,获取最新文章,请关注此号

StreamReader & StreamWriter_类对象