使用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();

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

时间: 2024-11-08 21:36:39

使用FileStream修改txt中的内容的相关文章

一个修改文件中指定内容的程序

下面是一个修改文件中指定内容的程序,这里面主要用到了以下几个函数: FILE * fopen(const char * path,const char * mode); size_t fread ( void *buffer, size_t size, size_t count, FILE *stream) ; buffer:用于接收数据的内存地址: size:要读的每个数据项的大小,单位为字节: count:要读的数据项的个数: stream:输入流. size_t fwrite(const

Java中如何修改Jar中的内容

一.摘要 好长时间没写blog了,之前换了一家公司.表示工作更有战斗力了,可惜就是没时间写文章了.在这段时间其实是遇到很多问题的,只是都是记录下来,并没有花时间去研究解决.但是这周遇到这个问题没办法让我继续前进了.必须记录一下.以被后人使用.不多说了,进入主题. 二.前提 1.对于GA的了解(自行google) 2.对CampaignTrackingReceiver类的了解,他是当从GP上下载并且安装完成一个app的时候,发送一个广播,会在Intent中携带一些数据,一般是Refer值,这里可以

python 修改文件中的内容

在python的文件操作中,是没有办法对文件中具体某行或者某个位置的内容进行局部的修改的,如果需要对文件的某一行内容进行修改,可以先将文件中的所有的内容全部读取出来,再进行内容判断,是否是需要修改的内容,如果是就替换内容,并且将修改替换过的内容和没有修改的内容全部写入到新的文件中. # 打开旧文件 f = open('file_text.txt','r',encoding='utf-8') # 打开新文件 f_new = open('file_text_bak.txt','w',encoding

【ASP.NET 进阶】定时执行任务实现 (定时读取和修改txt文件数字内容,无刷新显示结果)

现在有很多网站或系统需要在服务端定时做某件事情,如每天早上8点半清理数据库中的无效数据等等,Demo 具体实现步骤如下: 0.先看解决方案截图 1.创建ASP.NET项目TimedTask,然后新建一个全局应用程序类文件 Global.asax 2.然后在Application_Start 事件中 启动定时器,如需要每隔多少秒来做一件事情,即在后台执行,与客户端无关,即使客户端全部都关闭,那么后台仍然执行,具体代码如下: using System; using System.Collection

任务十四——数组对象的处理、修改DOM中的内容

尽量避免循环内appendChild…重排会引起性能下降,对DOM的操作要越少越好,可考虑将ul中内容 保存到临时字符串 最后一次性添加. var aqiData = [ ["北京", 90], ["上海", 50], ["福州", 10], ["广州", 50], ["成都", 90], ["西安", 100] ]; (function () { /* 在注释下方编写代码 遍历读取aq

修改数据库中的内容报错:PropertyAccessException:Null value was assinged to a property of primitive type setter of

错误原因:totalTime的类型为int,数据库中为NULL,int 类型不能赋值为NULL,只能为0,所以报此异常. 解决方案:将totalTime的类型改为Integer,或者初始化为0

C#控制台基础 streamreader与streamwriter读取一个txt中的内容写到另外一个txt中

1 代码 1 using System; 2 using System.Collections.Generic; 3 using System.IO; 4 using System.Linq; 5 using System.Text; 6 using System.Threading.Tasks; 7 8 namespace ConsoleApplication4 9 { 10 class Program 11 { 12 static void Main(string[] args) 13 {

操作文件-修改文件中的内容

import os geci=open("a.txt",encoding="utf-8")new_geci=open("a1.txt","w",encoding="utf-8")for line in geci: change=line.replace("一","1") new_geci.write(change)geci.close()new_geci.close(

修改文件中的内容,使用fileinput模块

import fileinput filename = 'passwd' for line in fileinput.input(filename,inplace=1,backup='.bak') print line.replace('root','ROOT')