1

我正在开发一个实用程序。

我想在文件顶部附加数据,但它是覆盖而不是附加。

例如:考虑 file.txt:

这里存在的东西

现在我想在当前行之前附加“这里有更多的东西”。有没有办法不使用 2 FileStreams ?

4

3 回答 3

2

不。文件系统基本上不支持向文件中插入数据——您要么在文件末尾追加,要么覆盖现有数据。至少,我不知道有任何文件系统支持这一点,标准 API 也不支持

要以任何其他方式更改文件,最好的方法是编写一个新文件,从您需要的旧文件中读取(在您的情况下,在编写前面的文本之后)。然后删除旧文件并将新文件重命名为与旧文件同名。

(更安全的版本涉及重命名旧文件,然后重命名新文件,然后删除旧文件 - 如果出现任何问题,这允许恢复。)

于 2009-06-30T06:22:52.867 回答
1

不。文件没有像文字处理器那样的插入模式。

对不起,这不是你想听到的,而是事实。

于 2009-06-30T06:24:45.563 回答
0

是的

FileStream fs = new FileStream(path2, FileMode.OpenOrCreate, FileAccess.ReadWrite);

sw = 新 StreamWriter( fs );

sw.BaseStream.Seek(0, 0);

sw.WriteLine("写新文本");

sw.close()

此方法将覆盖任何现有数据,类似于插入和替换。

于 2009-10-06T17:15:42.707 回答