C#关于流和文件读写简单笔记

File类:提供用于操作文件的静态方法。
FileInfo类:提供操作文件的属性和实例方法。
Directory类:提供用于操作目录的静态方法。
DirectoryInfo类:提供用于操作目录的实例方法,此类不能被继承。

简单来说,有Info这个词的类不是静态的,必须要实例化后才可以使用;而没有这个词的都是静态类,可以直接使用。当需要进行很多次对目录或文件的操作时,最好别使用静态类,因为每次都要查找文件,所以会比较耗费时间。

以File类为例来简单列出一些常用方法吧,其它类实现方法差不多:
1.判断文件是否存在:File.Exists();
2.创建文件:File.Create();
3.删除文件:File.Delete();
4.复制文件:File.Copy();
5.读写文件:File.ReadAllLines();File.WriteAllLines();

1、FileStream类:

主要用于对磁盘上文件的读写
读取数据:

FileStream fs = new FileStream(@"demo.txt",FileMode.Open);//初始化文件流
byte[] array = new byte[fs.Length];//初始化字节数组
fs.Read(array, 0, array.Length);//读取流中数据到字节数组中
fs.Close();//关闭流
string str = Encoding.Default.GetString(array);//将字节数组转化为字符串
Console.WriteLine(str);

写入数据:

FileStream fs = new FileStream(@"demo.txt",FileMode.Append);//初始化文件流
byte[] array = Encoding.UTF8.GetBytes("Hello World!你好");//给字节数组赋值
fs.Write(array, 0, array.Length);//将字节数组写入文件流
fs.Close();//关闭流
2、MemoryStream类:

主要用于操作内存中的数据。

3、StreamReader/StreamWriter类:

主要用来处理流数据,提供了高效的流读写功能。可以直接用字符串进行读写,而不用转换成字节数组。
读取数据:

FileStream fs = new FileStream(@"demo.txt", FileMode.Open);
StreamReader sr = new StreamReader(fs);
string line = sr.ReadLine();//直接读取一行
sr.Close();
fs.Close();
Console.WriteLine(line);

写入数据:

FileStream fs = new FileStream(@"demo.txt", FileMode.Append);
StreamWriter sw = new StreamWriter(fs);
sw.WriteLine("hello world");
sw.Close();
fs.Close();//这里要注意fs一定要在sw后面关闭,否则会抛异常
4、TextReader/TextWriter类:

主要用来处理流数据,提供了高效的文本流读写功能。

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 在C#中,使用Linq to XML可以方便地进行XML文件的读写操作。首先,我们需要加载XML文件,可以使用XDocument类的Load方法来加载文件\[1\]。然后,我们可以通过获取根元素来访问XML文件的内容,使用Root属性可以获取根元素\[2\]。接下来,我们可以使用Elements方法获取根元素的所有直接子元素,并通过遍历这些子元素来获取它们的名称和属性值\[2\]。如果需要进一步访问子元素的子元素,可以使用Elements方法继续获取\[2\]。另外,如果XML文件中使用了命名空间,我们可以使用XName类的Get方法来指定命名空间\[3\]。通过这些方法,我们可以方便地读取和解析XML文件中的数据。当需要写入XML文件时,可以使用XDocument类的Save方法将修改后的XML文件保存到指定的路径。 #### 引用[.reference_title] - *1* *3* [Linq to Xml读写xml](https://blog.csdn.net/donghan2019/article/details/101946892)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [C#基础精华06(Linq To XML,读取xml文件,写入xml)](https://blog.csdn.net/XHQT520/article/details/50401669)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值