首页 > 代码库 > C#-I/O输入输出之FileStream类

C#-I/O输入输出之FileStream类

I/O数据流提供一种向后备存储读取字节的方式,它是在.NET Framework中执行读写文件操作时的一种非常重要的介质。


我们可以将流视为一组连续的一维数据,包含开头和结尾,并且其中的游标指示了流中的当前位置。


1.流操作

流中包含的数据可能来自内存、文件或TCP/IP套接字,基本操作:

(1)读取:将数据从流传输到数据结构(如字符串货字节数组)中

(2)写入:将数据从数据源传输到流中

(3)查找:查询和修改在流中的位置


2.流类型

流由Stream类表示,该类构成了所有其他流的抽象类。不恩给你直接创建Stream类实例,必须使用它来实现某个I/O流类。

主要包括:

FileStream类,BufferedStream类,CryptoStream类,MemoryStream类和NetworkStream类(这个在之前提到的TcpClient的时候有过)


3.FileStream类


(1)常用属性

Length          获取用字节表示的流长度

Name            获取传递给构造函数的FileStream的名称

Positon         获取或设置此流的当前位置

ReadTimeout     获取或设置一个值,该值确定流在超时前尝试读取多长时间

WriteTimeout    获取或设置一个值,该值确定流在超时前尝试写入多长时间


(2)常用方法

Close           关闭当前流并释放与之关联的所有资源

Read            从流中读取字节块并将该数据写入给定的缓冲区

ReadByte        从文件中读取一个字节,并将读取位置提升一个字节

Seek            将该流的当前位置设置为给定值

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

Write           使用从缓冲区读取的数据将字节块写入该流

WriteByte       将一个字节写入文件流的当前位置



(3)使用FileStream类操作文件


FileStream类的构造函数的重载方式有很多,包含的重要参数有FileMode枚举

FileMode枚举:

Append        打开现有文件并查找到文件尾或创建新文件,只能与FileAccess.Write

Create        指定操作系统应创建新文件,文件已存在,则改写

CreateNew     指定操作系统应创建新文件,文件以存在,引发IOExecption,需要                   FileIOPermissionAccess.Write

Open          指定操作系统应打开文件,如果文件不存在,引发找不到错误

OpenOrCreate  指定操作系统应打开文件(如果文件存在),否则应创建新文件

Truncate      指定操作系统应打开现有文件,文件一旦打开,将被截断为零字节大                 小。视图从使用Truncate打开的文件中进行读取将导致异常



实例代码:


FileStream filestream = new FileStream("test.txt",FileMode.OpenOrCreate,FileAccess.ReadWrite)

注意:

文件要放在程序运行目录下,否则就需要给构造函数传递绝对地址