首先了解一下FileStream的概念
FileStream对象表示在磁盘或网络路径上指向文件的流,FileStream类操作的是字节和字节数组。
还有几种方法可以创建FileStream对象。构造函数具有许多不同的重载版本,最简单的构造函数仅仅带有两个参数,即文件名和FileMode枚举值。
FileStream fs = new FileStream(strfile, FileMode.Member);
FileStream常用的属性:
CanRead | 判断当前流是否支持读取,返回bool值,True表示可以读取 |
CanWrite | 判断当前流是否支持写入,返回bool值,True表示可以写入 |
FileStream常用的方法:
Read() |
从流中读取数据,返回字节数组 |
Write() | 将字节块(字节数组)写入该流 |
Seek() | 设置文件读取或写入的起始位置 |
Flush() | 清除该流缓冲区,使得所有缓冲的数据都被写入到文件中 |
Close() |
关闭当前流并释放与之相关联的所有系统资源 |
文件打开模式FileMode枚举成员如下:
成 员 | 文 件 存 在 | 文件不存在 |
Append | 打开文件,流指向文件的末尾,只能与枚举FileAccess.Write联合使用 | 创建一个新文件。只能与枚举FileAccess.Write联合使用 |
Create | 删除该文件,然后创建新文件 | 创建新文件 |
CreateNew | 抛出异常 | 创建新文件 |
Open | 打开现有的文件,流指向文件的开头 | 抛出异常 |
OpenOrCreate | 打开文件,流指向文件的开头 | 创建新文件 |
Truncate | 打开现有文件,清除其内容。流指向文件的开头,保留文件的初始创建日期 | 抛出异常 |
文件的访问方式:(FileAccess)
FileAccess.Read | 对文件读访问 |
FileAccess.Write | 对文件进行写操作 |
FileAccess.ReadWrite | 对文件读或写操作 |
文件位置SeekOrigin枚举成员如下:
Begin | 指定流的开头。 |
Current | 指定流内的当前位置。 |
End | 指定流的结尾。 |
下面以一个修改txt文件的第一行内容为例子:
byte[] byData; char[] charData; FileStream aFile = new FileStream(System.Web.HttpContext.Current.Server.MapPath("text.txt"), FileMode.Create); charData = "xxxxxx".ToCharArray(); byData = new byte[charData.Length]; Encoder e = Encoding.UTF8.GetEncoder(); e.GetBytes(charData, 0, charData.Length, byData, 0, true); aFile.Seek(0, SeekOrigin.Current); aFile.Write(byData, 0, byData.Length); aFile.Close(); aFile.Dispose();
这个代码修改了代码中第一行指定字节长度的的数据