对文件的读写操作应该是最重要的文件操作,System.IO命名空间提供了诸多文件读写操作类,对文件内容进行操作常见有3种方式:文本模式、二进制模式以及异步模式。

1、文本模式

   StreamReader和StreamWriter类提供了按文本模式读写数据的方法。

1.1 StreamReader类的成员方法

方法

说明

Close

关闭StreamReader并释放与阅读器关联的所有系统资源。

CreateObjRef

(从MarshalByRefObject继承)创建一个对象,该对象包含生成用于与过程对象进行通讯的代理所需的全部相关信息。

DiscardBufferedData

允许StreamReader丢弃其当前数据。

Equals

确定两个Object实例是否相等。

GetHashCode

用作特定类型的哈希函数,适合在哈希算法和数据结构中使用。

GetLifetimeSrvice

(从MarshalByRefObject继承)检索控制此实例的生存期策略的当前生存期服务对象

Peek

返回下一个可用的字符,但不使用它。

Read

读取输入流中的下一个字符或下一组字符。

ReadBlock

(从TextReader继承)从当前流中读取最大数量的字符并从索引开始将该数据写入缓冲区

ReadLine

从当前流中读取一行字符并将数据作为字符串返回

ReadToEnd

从流的当前位置到末尾读取流

 

1.1 StreamWriter类的成员方法

方法

说明

Close

关闭当前的StreamWriter和基础流。

CreateObjRef

(从MarshalByRefObject继承)创建一个对象,该对象包含生成用于与过程对象进行通讯的代理所需的全部相关信息。

Equals

确定两个Object实例是否相等。

Flush

清理当前编写器的所有缓冲区,并使所有缓冲数据写入基础流。

GetHashCode

用作特定类型的哈希函数,适合在哈希算法和数据结构中使用。

GetLifetimeSrvice

(从MarshalByRefObject继承)检索控制此实例的生存期策略的当前生存期服务对象

Write

写入流

WriteLine

(从TextWrite继承)写入重载参数指定的某此数据,后跟行结束符。

 

2、二进制模式

   System.IO还提供了BinaryReader和BinaryWriter类,用于按二进制模式读写文件。它们提供的一些读写方法是对称的。

2.1 BinaryReader类的成员方法

方法

说明

Close

关闭当前阅读器及基础流。

PeekChar

返回下一个可用的字符,并且不提升字节或字符的位置。

Read

从基础流中读取字符,并提升流的当前位置

ReadBoolean

从当前流中读取Boolean,并使该流的当前位置提升1个字节。

ReadByte

从当前流中读取下一个字节,并使流的当前位置提供1个字节。

ReadBytes

从当前流中将Count个字符读入字节数组,并使当前位置提升Count个字节。

ReadChar

从当前流中读取下一个字符,并根据所使用的Encoding和从流中读取的特定字符,提升流的当前位置。

ReadChars

从当前流中读取Count字符,以字符数组的形式返回数据,并根据所使用的Encoding和从流中读取的特定字符,提升当前位置。

ReadInt16

从当前流中读取2字节有符号整数,并使流的当前位置提升2个字节。

ReadUint16

从当前流中读取2字节无符号整数,并使流的当前位置提升2个字节。

……

 

 

2.2 BinaryWriter类的成员方法

方法

说明

Close

关闭当前的BinaryWriter和基础流。

Flush

清理当前编写器的所有缓冲区,使所有缓冲数据写入基础设备

Seek

设置当前流中的位置

Write

将值写入当前流。

 

3、异步模式

   先来说说同步和异步操作之间的主要区别,同步I/O意味着在I/O操作完成之前,方法被阻塞,I/O操作完成后,方法返回其数据。使用异步I/O,用户可以调用BeginRead或BeginWrite。主线程可以继续进行其他工作,稍后用户将能够处理数据。另外,多个I/O请求可以被同时挂起。

3.1 Stream类的主要成员方法

方法

说明

BeginRead

开始异步读操作

BeginWrite

开始异步写操作

Close

关闭当前流并释放与之关联的所有资源(如套接字和文件句柄)

EndRead

等待挂起的异步读取完成。

EndWrite

结束异步写操作。

Flush

在派生类中直接重写时,将清除该流的所有缓冲区并使所有缓冲数据被写入到基础设置。

Read

当在派生类中重写时,从当前流读取字节序列,并将此流中的位置提升读取的字节娄

ReadByte

从流中读取1个字节,并将流内的位置向前推进1个字节,或者如果已到达流末尾,则返回-1

Seek

当在派生类中重写时,设置当前流中的位置

SetLength

当在派生类中重写时,设置当前流的长度

Write

在派生类中重写时,向当前流中写入字节序列并将此流中的当前位置提升写入的字节数

WriteByte

将一个字节写入流内的当前位置并将流内的位置向前推进一个字节。

 

<五> path类

   Path类用来处理路径字符串,它的方法也全部是静态的。

方法

说明

ChangExtension

更改路径字符串的扩展名

Combine

合并两个路径字符串

GetDirectoryName

返回指定路径字符串的目录信息

Gextension

返回指定路径字符串的扩展名

GetFileName

返回指定路径字符串的文件名

GetFileNameWithoutExetension

返回不带有扩展名的指定路径字符串我文件名

GetFullPath

返回指定路径字符串的绝对路径

GetTempPath

返回当前系统的临时文件夹的路径

HasExtension

确定路径是否包括文件扩展名。