Go homepage(回首页)
Upload pictures (上传图片)
Write articles (发文字帖)

The author:(作者)qq
published in(发表于) 2014/7/11 9:28:39
C#文件处理技术:FileStream使用方法

C#文件处理技术:FileStream使用方法|实例

FileStream

FileStream对象表示在磁盘或网络路径上指向文件的流。一个FileStream类的实例实际上代表一个磁盘文件,它通过Seek方法对文件进行随机访问,也同时包含了流的标准输入、标准输出和标准错误等。FileStream默认对文件的打开方式是同步的,但它同样可以支持异步操作。

FileStream对象支持使用Seek方法对文件进行随机访问。Seek允许将读取/写入位置移动到文件中的任意位置。这是通过字节偏移参考点参数完成的。字节偏移量是相对于查找参考点而言的,该参考点可以是基础文件的开始、当前位置或结尾,分别由Seekorigin类的3个属性表示。

1.FileStream类的常用属性

FileStream类的常用属性及说明如表1所示。



表1 FileStream类的常用属性及说明

下面对FileStream类中比较重要的属性进行详细介绍。

(1)Length属性。获取用字节表示的流长度。

语法:

public override long Length { get; }

属性值:用字节表示流长度的是“长度值”,还是删除“长”字值。

(2)Position 属性。获取或设置此流的当前位置。

语法:

public override long Position { get; set; }

属性值:此流的当前位置。

2.FileStream类的常用方法

FileStream类的常用方法及说明如表2所示。



表2 FileStream类的常用方法及说明

下面对FileStream类中比较重要的方法进行详细介绍。

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

语法:

public virtual void Close ()

在创建和使用完一个流后一定要将其及时关闭。

(2)Flush ()方法。清除该流的所有缓冲区,使得所有缓冲的数据都被写入到基础设备。

语法:

public override void Flush ()

在调用Close ()方法方法之前调用Flush ()方法,可以将以前写入缓冲区的任何数据都复制到文件中,并且缓冲区被清除(其编码器状态除外)。

(3)Write ()方法。使用从缓冲区读取的数据将字节块写入该流。

语法:

public override void Write (byte[] array,int offset,int count)

参数说明如下。

array:指包含要写入该流的数据的缓冲区。

offset:指数组中的从零开始的字节偏移量,从此处开始将字节复制到当前流。

count:指要写入当前流的最大字节数。

3.使用FileStream操作文件

要用FileStream操作文件就要先实例化一个FileStream对象,FileStream的构造函数具有许多不同的重载/版本,FileStream类中最简单的构造函数只有两个参数,即文件名和FileMode枚举。

FileMode枚举规定了如何打开或创建文件,其包括的枚举成员如表3所示。



表3 FileMode类的枚举成员

下面以实例化一个FileStream为例来讲解FileStream操作文件的过程。

FileStream aFile = new FileStream("hb.txt",FileMode.OpenOrCreate,FileAccess.ReadWrite)

此行代码将打开文件“hb.txt”,对文件进行读写访问。注意,文件要放在程序运行目录下,否则就要传给构造函数绝对路径。

当打开文件时,FileStream类对象会维护一个内部文件指针,这个指针将会指向文件中的位置,在多数情况下,默认指向文件的开始位置,但是通过修改指针允许程序将指针定位在文件的任何地方。实现此功能的是Seek()方法。例如:

aFile.Seek(8,SeekOrigin.Begin)

在上面的代码中,参数8是指指针以8KB为单位的移动距离。参数SeekOrigin规定了开始计算的起始位置。SeekOrigin有3个枚举值Begin、Current和End,分别是开始、当前和结束。上面的代码将文件指针移到以开始为起始位置的8KB后。

FileStream类以字节的方式读取文件,因此可以用于任何数据文件,而不仅仅是文本文件。例如,FileStream对象可以读取类似图像和声音文件。在处理文本文件时,StreamWriter和StreamReader更方便。

FileStream对象通过Read()方法读取数据。Read(byte[] array, int offset,int count,)方法中,参数array是字节数组,用来接受FileStream对象中的数组。 offset参数是字节数组中开始写入的位置。count规定了从文件中读出多少字节。例如:


If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)





QQ:154298438
QQ:417480759