All articles(网络文学目录) All Pictures(图片目录) All Softwares(软件目录)

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

Writer: qq Article type: Programming skills(编程技巧) Time: 2014/7/11 9:28:39 Browse times: 222 Comment times: 0

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


Head photo

Go homepage
Upload pictures
Write articles

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规定了从文件中读出多少字节。例如:





There are 0 records,
Comment:
Must be registered users to comment(必须是注册用户才能发表评论)

Disclaimer Privacy Policy About us Site Map
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.