我正在研究一个实用程序。
我想在文件顶部附加数据,但是它会覆盖而不是追加。
例如:考虑file.txt:
这里存在的东西
现在我想在当前行之前附加“此处存在更多内容”。有没有办法可以不使用2个FileStream?
答案 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()
此方法将覆盖任何现有数据,类似于插入和替换。