是否可以写入(追加 - 无覆盖)到现有的二进制文件。
我必须以读写模式打开一个文件,然后在我在文件中指定的位置随机写入字节数组。
我有 Java 背景,我在 Java 中使用 RandomAccessFile 来完成这个,但是 C# 没有这样的内置函数让我无处可去。
任何其他解决方法或解决方案将不胜感激。
-阿迪尔。
最佳答案
Is it possible to write (Append - No Overwrite) to an existing binary file.
Appending 将在末尾添加数据。没关系。以读/写模式打开流后,只需查找流的末尾即可。
虽然听起来您想要插入 数据,但这不可用。这不是文件系统倾向于支持的东西。您需要将原始文件的第一部分复制到新文件中,写入新数据,然后复制原始文件的其余部分。
顺便说一句,RandomAccessFile
也不支持插入,因此您的 Java 代码也有可能被破坏。
编辑:好的,所以如果你只想覆盖,那很容易:
using (var stream = File.Open("file.dat", FileMode.Open))
{
stream.Position = 100;
// Assuming data is the data you want to write to the file
stream.Write(data, 0, data.Length);
}
关于c# - 将字节数组写入 C#.NET 中现有文件的中间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9529313/