我正在开发一个实用程序。
我想在文件顶部附加数据,但它是覆盖而不是附加。
例如:考虑 file.txt:
这里存在的东西
现在我想在当前行之前附加“这里有更多的东西”。有没有办法不使用 2 FileStreams ?
我正在开发一个实用程序。
我想在文件顶部附加数据,但它是覆盖而不是附加。
例如:考虑 file.txt:
这里存在的东西
现在我想在当前行之前附加“这里有更多的东西”。有没有办法不使用 2 FileStreams ?
不。文件系统基本上不支持向文件中插入数据——您要么在文件末尾追加,要么覆盖现有数据。至少,我不知道有任何文件系统支持这一点,标准 API 也不支持。
要以任何其他方式更改文件,最好的方法是编写一个新文件,从您需要的旧文件中读取(在您的情况下,在编写前面的文本之后)。然后删除旧文件并将新文件重命名为与旧文件同名。
(更安全的版本涉及重命名旧文件,然后重命名新文件,然后删除旧文件 - 如果出现任何问题,这允许恢复。)
不。文件没有像文字处理器那样的插入模式。
对不起,这不是你想听到的,而是事实。
是的
FileStream fs = new FileStream(path2, FileMode.OpenOrCreate, FileAccess.ReadWrite);
sw = 新 StreamWriter( fs );
sw.BaseStream.Seek(0, 0);
sw.WriteLine("写新文本");
sw.close()
此方法将覆盖任何现有数据,类似于插入和替换。