StreamReader & StreamWriter

2022-03-29 09:38:47 浏览数 (1)

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

先看一下代码:

代码语言:javascript复制
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类对象也是一样的用法。

本节到此结束(昨天少发了一节,今天补上,IO系类结束)...

0 人点赞