将字节数组写入C#.NET中现有文件的中间位置

use*_*484 2 c# random byte bytearray file

是否可以写入(附加 - 无覆盖)到现有的二进制文件.

我必须在读写模式下打开一个文件,然后在文件中指定的位置随机写入字节数组.

我来自Java背景,我在Java中使用RandomAccessFile来实现这一目标,但是C#在没有这些内置函数的情况下让我无处可去.

任何其他解决方法或解决方案将受到高度赞赏.

-Adil.

Jon*_*eet 8

是否可以写入(附加 - 无覆盖)到现有的二进制文件.

追加将在最后添加数据.没关系.在读/写模式下打开后,只需查找流的末尾即可.

听起来你想要插入数据,而这是不可用的.这不是文件系统倾向于支持的东西.您需要将原始文件的第一部分复制到新文件中,写入新数据,然后复制原始文件的其余部分.

顺便说一句,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);
}
Run Code Online (Sandbox Code Playgroud)