StreamReader、StreamWriter位于命名空间System.IO下,功能与FileStream相比较弱,FileStream可以操作任何格式文件,但是StreamReader、StreamWriter仅能操作文本文件。两者均属于文件流GC不会自动释放。
StreamReader、StreamWriter相比FileStream,写法更为简单,如果只是单独的操作文本文件不失为一个很好的选择。
一、StreamReader() 读取文本文件
1)从头读到尾用 ReadToEnd()方法
static void Main(string[] args)
{
using(StreamReader streamReader=new StreamReader(@"C:\Users\HUAWEI\Desktop\新建 文本文档.txt"))
{
string str=streamReader.ReadToEnd(); //从头读到尾,返回字符串
Console.WriteLine(str);
}
Console.ReadLine();
}
2)按行读取用ReadLine()方法
如果按行读取的话需要配合while循环使用,当读到流结束时后结束循环,如果没有读到流结束将一直读取。
另外读取过程中如果出现乱码可以在创建StreamReader对象指定读取编码Encoding来解决乱码
static void Main(string[] args)
{
using(StreamReader streamReader=new StreamReader(@"C:\Users\HUAWEI\Desktop\新建 文本文档.txt",Encoding.UTF8))
{
while (!streamReader.EndOfStream)
{
string str = streamReader.ReadLine(); //按行读取,返回字符串
Console.WriteLine(str);
}
}
Console.ReadLine();
}
二、StreamWriter()写入文件
static void Main(string[] args)
{
using(StreamWriter streamWriter=new StreamWriter(@"C:\Users\HUAWEI\Desktop\1.txt"))
{
streamWriter.WriteLine("我是新加入的文字"); //按行写入,会覆盖之前的文字
}
Console.ReadLine();
}
按照如上代码直接写入将覆盖文本中的原有内容,如果需要以追加的形式写入,则可以在实例化对象的过程中假如true参数
static void Main(string[] args)
{
using(StreamWriter streamWriter=new StreamWriter(@"C:\Users\HUAWEI\Desktop\1.txt",true))
{
streamWriter.WriteLine("我是再次加入的文字"); //按行追加写入,不会覆盖之前的文字
}
Console.ReadLine();
}
StreamReader、StreamWriter类使用起来比较简单,常用方法就这么多啦!!!

本文介绍了C#中用于文本文件操作的StreamReader和StreamWriter类,它们仅适用于文本文件,比FileStream更易用。文章详细讲解了如何使用StreamReader的ReadToEnd()和ReadLine()方法按行或全文读取文件,并提供了避免乱码的解决方案。同时,阐述了StreamWriter如何写入文件,以及如何以追加方式写入文件。

1774

被折叠的 条评论
为什么被折叠?



