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

标签 c# file random arrays byte

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

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

我有 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/

相关文章:

python只将最后的输出写入文件

Java:使用for循环用特定范围内的随机整数填充数组

c - 随机数生成器添加 "-"以获取更大的长度

c# - 有人可以解释一下这段 HtmlAgilityPack 代码吗?

C# Web 浏览器控件 : Navigating to a List to URLs

c# - 有没有办法将(wcf rest)json请求内容从fiddler发送到服务器上的对象类型?

c# - 如何在 C# 中使用 T 类型进行类型转换并访问其属性和变量

file - 创建MIDI文件- header block 中的时分说明

java - 在获取 Java 文件对象之前知道文件是否完整

arrays - 获取随机和从阵列中删除