使用FileStream修改txt中的内容

首先了解一下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();

这个代码修改了代码中第一行指定字节长度的的数据

原文地址:https://www.cnblogs.com/Cynosure/p/4236107.html