FileStream在顶部附加数据

时间:2009-06-30 06:17:44

标签: .net file-io filestream

我正在研究一个实用程序。

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

例如:考虑file.txt:

  

这里存在的东西

现在我想在当前行之前附加“此处存在更多内容”。有没有办法可以不使用2个FileStream?

3 个答案:

答案 0 :(得分:2)

没有。文件系统基本上不支持将数据插入文件 - 您可以附加到文件的末尾,也可以覆盖现有数据。至少,我不知道 支持这个的任何文件系统,标准API没有。

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

(更安全的版本包括重命名旧文件,然后重命名新文件,然后删除旧文件 - 如果出现任何问题,可以恢复。)

答案 1 :(得分:1)

没有。文件没有插入模式,就像文字处理器一样。

对不起,这不是你想听到的,但它是一个事实。

答案 2 :(得分:0)

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

sw = new StreamWriter(fs);

sw.BaseStream.Seek(0,0);

sw.WriteLine(“写新文字”);

sw.close()

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