C# StreamReader、StreamWriter类文本文件操作

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

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类使用起来比较简单,常用方法就这么多啦!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

虾米程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值