当前位置:文档之家› C#的FileStream文件流(IO流)

C#的FileStream文件流(IO流)

IO流
◆FileStream
◆说明:FileStream是针对文件中的字符进行读取/写入
●FileStream是对系统上的文件进行读,写,打开,关闭等操作。

●并对其他与文件相关的操作系统提供句柄操作。

如管道,标准输入和标准输出。

●读写操作可以指定为同步或异步操作。

●FileStream对输入输出进行缓冲,从而提高性能。

FileStream.Seek()的该流读取/写入的当前位置设置为给定值:
●FileStream对象支持使用Seek方法对文件进行随机访问。

●Seek允许将读取/写入位置移动到文件中的任意位置。

这是通过字节偏移参考点参数完成。

●字节偏移量是相对于查找参考点而言的,该参考点可以是基础文件的开始、当前位置或结尾,分别由SeekOrigin类
的三个属性表示。

FileStream.Flush()的清除该流的所有缓冲区:
●FileStream会自动缓冲数据,通过Flush()能够强制输出缓冲区中的数据。

●FileStream和其他流都会占用不在.net管理范围的资源,因此FileStream在使用完成之后应该调用Dispose()方
法或者通过using关键字调用。

●Dispose()方法会调用Close()方法,Close()方法会调用Flush()方法。

FileStream枚举,用于指定操作系统打开文件的方式:
✧以下红色加粗字体为重要经常使用
公共属性:
CanRead当前流是否支持读取。

CanSeek当前流是否支持查找。

CanWrite当前流是否支持写入。

CanTimeeout当前流是否可以超时。

IsAsync指示FileStream是异步还是同步打开的。

Length 指示字节表示的流长度。

Name FileStream的名称
PoSition此流的当前位置。

Handle 获取当前 FileStream 对象所封装文件的操作系统文件句柄。

SafeFileHandle该对象表示当前 FileStream 对象封装的文件的操作系统文件句柄。

ReadTimeout该值指示尝试读取多长时间后超时。

WriteTimeout该值确定流在超时前尝试写入多长时间。

公共方法:
BeginRead开始异步读
BeginWrite开始异步写
Read 从流中读取字节块并将该数据写入给定缓冲区中
ReadByte从文件中读取一个字节,并将读取位置提升一个字节。

Write使用从缓冲区读取的数据将字节块写入改流
WriteByte将一个字节写入文件流的当前位置
Seek将该流的当前位置设置为给定值
Close关闭当前流并释放与之关联的所有资源
Dispose释放流所占用的资源
EnRead等待挂起的异步读取完成
EnWrite结束异步写入,在I/O操作完成之前一直阻止
Flush清除该流的所有缓冲区,使得所有缓冲的数据都被写入到基础设备
Lock允许读取访问的同时防止其他程序更改FileStream。

CreateObjRef创建一个对象,该对象包含生成用于与远程对象进行通信的代理所需的全部相关信息。

GetAccessControl获取 FileSecurity 对象,该对象封装当前 FileStream 对象所描述的文件的访问控制列表 (ACL)
项。

GetLifetimeService检索控制此实例的生存期策略的当前生存期服务对象。

(从 MarshalByRefObject 继承。


InitializeLifetimeService获取控制此实例的生存期策略的生存期服务对象。

(从 MarshalByRefObject 继承。


SetAccessControl将 FileSecurity 对象所描述的访问控制列表 (ACL) 项应用于当前 FileStream对象所描述的文
件。

SetLength已重写。

将该流的长度设置为给定值。

Synchronized 在指定的 Stream 对象周围创建线程安全(同步)包装。

(从 Stream 继承。


Unlock 允许其他进程访问以前锁定的某个文件的全部或部分。

FileStream常用的构造函数(FileMode文件的打开方式,FileAccess文件的读写方式,FileShare文件的共享权限) FileStream FS = newFileStream("E:\文件流txt",FileMode.Create);//写入流
FileStream FS = new FileStream("E:\文件流.txt",FileMode.Append,FileAccess.Write);//追加流
FileStream FS = new FileStream("E:\文件流.txt",FileMode.CreateNew,FileAccess.Write);//创建新文本并写入
FileStream FS = new FileStream("E:\文件流.txt",FileMode.OpenOrCreate,FileAccess.Write);//打开文件,如果文件不存在则新
建文件
FileStream FS = new FileStream("E:\文件流.txt",FileMode.Open,FileAccess.Read,FileShare.Read);//打开文件并读取文件内容
然后设置进行共享文件
FileStream FS = new FileStream("E:\文件流.txt",FileMode.Open,FileAccess.ReadWrite);//打开文件并读取文件内容和数据写入
文件。

相关主题