这节讲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系类结束)...