GO文件操作——重写文件任意位置内容

发布于 作者 量尺寸留下评论

使用Golang来重写文本文件任意位置内容,这里为了方便,取举以重写文件文件开头11字节内容为例。

首先我们定义长度为11的字节型切片,并初始化成我们想要写入的值:

var Data = make([]byte,11)
for i:=0;i<10;i++{
Data[i] = 0x20
}
Data[0] = '1'
Data[10] = '\n'

上面的代码是为了更清晰的演示初使化过程,实际应用中我们可以copy(Data,”1        \n”)来实现。

下来执行打开文件,并定位文件指针,这里我们把文件指针放在文件的第一个字符处,读10个字节到Data中去。

f, _ := os.OpenFile(CountData.FileName, os.O_RDWR, 0666)
ReadCounts, err := f.Read(Data[:10])

这时我们可以修改Data的值,改成我们即将要写入的字节值。

copy(Data,"abcdefghij")

然后将Data的内容还是从文件开头写入,等于用abcdefghij替换到文件最开始的10个字符:

_, _ = f.Seek(0, io.SeekStart)
_, _ = f.Write(Data)
_ = f.Close()

通过Golang的fseek就可以实现对文本文件任意位置内容的覆盖,值得注意的是,这里的文件开打方式不能是Append,否则无法实现在指定位置写入数据。

 

 

 

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注