作者:张铭标
撰写时间:2019年6月 6日
C#中的文件输入,输出功能主要用到I/O类. I/O类主要是作用是创建,删除,读取,写入,关闭文件等操作.
下面列出一些System.IO命名空间中常用到的非抽象类:
I/O类:BinaryReader 主要作用:从二进制流读取原始数据.
I/O类:BinaryWriter 主要作用:以二进制格式写入原始数据.
I/O类:BufferedStream 主要作用:字节流的临时存储.
I/O类:Directory 主要作用: 有助于操作目录结构.
I/O类:DirectoryInfo 主要作用:用于对目录执行操作.
I/O类:DriveInfo 主要作用:提供驱动器的信息.
I/O类:File 主要作用:有助于处理文件.
I/O类:FileInfo 主要作用:用于对文件执行操作.
I/O类:FileStream 主要作用:用于文件中任何位置的读写.
I/O类:MemoryStream 主要作用:用于随机访问存储在内存中的数据流.
I/O类:Path 主要作用:对路径信息执行操作.
I/O类:StreamReader 主要作用:用于从字节流中读取字符.
I/O类:StreamWriter 主要作用:用于向一个流中写入字符.
I/O类:StringReader 主要作用:用于读取字符串缓冲区.
I/O类:StringWriter 主要作用:用于写入字符串缓冲区.
在System.IO命名空间中有一个叫做FileStream的类,这个类有助于文件的读写与关闭.要使用它首先需要创建一个FileStream对象来创建一个新的文件,或打开一个已有的文件.创建FileStream对象的语法如下:
FileStream <object_name> = new FileStream(
<file_name>,
, , );
例如,创建一个 FileStream 对象 F 来读取名为 sample.txt 的文件:
FileStream F = new
FileStream(“sample.txt”, FileMode.Open, FileAccess.Read,
FileShare.Read);
其中FileMode,FileAccess和FileShare这三个参数的主要功能描述如下:
FileMode: FileMode 枚举定义了各种打开文件的方法。FileMode 枚举的成员有:
Append:打开一个已有的文件,并将光标放置在文件的末尾。如果文件不存在,则创建文件。
Create:创建一个新的文件。如果文件已存在,则删除旧文件,然后创建新文件。
CreateNew:指定操作系统应创建一个新的文件。如果文件已存在,则抛出异常。
Open:打开一个已有的文件。如果文件不存在,则抛出异常。
OpenOrCreate:指定操作系统应打开一个已有的文件。如果文件不存在,则用指定的名称创建一个新的文件打开。
Truncate:打开一个已有的文件,文件一旦打开,就将被截断为零字节大小。然后我们可以向文件写入全新的数据,但是保留文件的初始创建日期。如果文件不存在,则抛出异常。
FileAccess:
FileAccess
枚举的成员有:Read、ReadWrite 和
Write。
FileShare:
FileShare
枚举的成员有:
Inheritable:允许文件句柄可由子进程继承。Win32 不直接支持此功能。
None:谢绝共享当前文件。文件关闭前,打开该文件的任何请求(由此进程或另一进程发出的请求)都将失败。
Read:允许随后打开文件读取。如果未指定此标志,则文件关闭前,任何打开该文件以进行读取的请求(由此进程或另一进程发出的请求)都将失败。但是,即使指定了此标志,仍可能需要附加权限才能够访问该文件。
ReadWrite:允许随后打开文件读取或写入。如果未指定此标志,则文件关闭前,任何打开该文件以进行读取或写入的请求(由此进程或另一进程发出)都将失败。但是,即使指定了此标志,仍可能需要附加权限才能够访问该文件。
Write:允许随后打开文件写入。如果未指定此标志,则文件关闭前,任何打开该文件以进行写入的请求(由此进程或另一进过程发出的请求)都将失败。但是,即使指定了此标志,仍可能需要附加权限才能够访问该文件。
Delete:允许随后删除文件。
注:部分内容参考W3Cshool