c# 专门针对文本文件的StreamReader StreamWriter读写操作

本文详细介绍了如何使用C#的StreamReader和StreamWriter类进行文本文件的读写操作。包括使用StreamReader读取文件内容,逐行读取并打印,以及如何处理中文编码问题;同时讲解了如何使用StreamWriter写入数据到文件,包括文本的写入和关闭流的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

c# 对文本文件的StreamReader StreamWrite读写操作

文件:

当打开读或者写文件时,就成为了流Stream;
而流又分为了输入流和输出流。输入流就是想文件中写数据,
输出流就是从文件中读出数据、

StreamReader类对文件的读取和关闭

class Program
    {
        static void Main(string[] args)
        {
            try
            {
                //创建一个StreamReader对象来读取文件的内容
                StreamReader sr = new StreamReader("C: /Users/JW/Desktop/起了.txt", Encoding.GetEncoding("GB2312"));
                //调用ReadLine方法,把得到的第一行的值存入line中
                //ReadLine方法读取文本,会以字符串的形式返回
                string line = sr.ReadLine();
                while (line != null)
                { //ReadLine读出来的数据一行行的打印出来
                    Console.WriteLine(line);
                    line = sr.ReadLine();
                }
                //关闭流
                sr.Close();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                Console.ReadLine();
            }
            Console.ReadKey();
        }  
    }

输出结果

在这里插入图片描述

注意:

1,ReadLine()读出的数据最终是以字符串的形式返回的,所以要用一个字符串变量来接收。

2,因为要读取的文件中是中文,所以要用Encoding.GetEncoding(“GB2312”)来设置

 `StreamReader sr = new StreamReader("C: /Users/JW/Desktop/起了.txt", Encoding.GetEncoding("GB2312"));`

如果最后打印出来的中文还是乱码,另存为时将编码设置成ANSI:
在这里插入图片描述

StreamWriter类对文件的写和关闭操作

 class Program
    {
        static void Main(string[] args)
        {
            try
            {
                //因为直接用StreamWriter类去创建对象,缺少了对文件的读/写/创建/权限的设置,所以就用FileStream去创建
                FileStream fs = new FileStream("C:/Users/JW/Desktop/JW.txt", FileMode.Create, FileAccess.ReadWrite);
                StreamWriter sw = new StreamWriter(fs);
                sw.WriteLine("你好吗?");
                sw.WriteLine("风走了,你走了,过去还在,现在不再,一尘不染");
                sw.WriteLine("有人看见过风吗?无一人,但是风走过,看看树,我们就都知道风已经来过了");
                sw.Write("大雨冲刷过的天空,更加明亮!经历过风雨的日子,之后的日子更加有味道!");
                sw.Close();
            }
            catch (IOException e)
            {
                Console.WriteLine(e.Message);
                Console.ReadLine();
            }
            Console.ReadLine();
        }
    }

结果

在这里插入图片描述

注意:

因为直接用StreamWriter类去创建对象,其构造函数中只有第二个参数
设置了bool值。(为true时:若文件存在则保留里面的内容;
			   为false时:无论文件是否存在都创建新文件,原来的文件被覆盖
缺少了对文件的读/写/创建/权限的设置,所以就用FileStream去创建。
FileStream有FileAc cess和FileMode属性可以设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值