.NET的文件操作类

System.IO 命名空间内包含了对文件操作的支持,我的总结是:

1.       文件是以流的形式进行操作的,首先应创建文件流,FileStream代表了创建的文件流,创建FileStream多种方法。常用的是利用FileFileInfo两个类,都有返回FileStream的方法,区别是一个提供静态方法,一个提供实例方法。

2.       FileStream可以直接操作文件,如写入,读出等,但只能以二进制的形式以BYTE内容进行,很不方便。

3.       .NET提供了两种形式的控制FileStream的方法。BinaryReader, BinaryWriter类,以二进制的形式对文件流进行操作,读取时可返回各种类型的数据,但二进制形式的文件,字符串前是一个长度前缀StreamReaderStreamWriter以编码方式对文件流进行操作,返回的只能是字符(数组)或字符串,这个两类分别从TextReaderTextWriter派生,从这两个类派生的还有操作字符串的两个类StringReaderStringWriter 当然BinaryReader, BinaryWriter在操作字符或字符串时同样需要提供编解码方法。所以BinaryReader, BinaryWriter相比功能比较强大,但操作字符串有一个长度前缀,用记事本等打开时有乱码。

4.       只要是操作文件对象,都会要求提供以上操作流的对象或FileStream对象,比如序列化的XmlSerializerBinaryFormatterSerialize方法都要求提供一个文件流对象,也就是FileStream对象。原理上XmlSerializerBinaryFormatterSerialize方法和BinaryWriterStreamWriter的操作文件实现原理是一致的。所以XmlSerializerSerialize方法也可以提供一个StreamWriter对象(从TextWriter派生,也可以序列化进一个字符串)。

原文地址:https://www.cnblogs.com/cuihongyu3503319/p/1328856.html