Подтвердить что ты не робот

Как добавить данные в двоичный файл?

У меня есть двоичный файл, к которому я хочу добавить фрагмент данных в конце файла, как я могу достичь этого с помощью С# и .net? также есть ли какие-либо соображения, возникающие при записи в конец двоичного файла? Большое спасибо за вашу помощь.

4b9b3361

Ответ 1

private static void AppendData(string filename, int intData, string stringData, byte[] lotsOfData)
{
    using (var fileStream = new FileStream(filename, FileMode.Append, FileAccess.Write, FileShare.None))
    using (var bw = new BinaryWriter(fileStream))
    {
        bw.Write(intData);
        bw.Write(stringData);
        bw.Write(lotsOfData);
    }
}

Ответ 2

Вы можете сделать это с помощью Stream:

using (FileStream data = new FileStream(path, FileMode.Append))
{
    data.Write(...);
}

Что касается соображений - основной из них будет: поддерживает ли поддержка базового формата данных? Многие не делают этого, если только это не ваши собственные необработанные данные или текст и т.д. Хорошо сформированный XML-документ не поддерживает append (без учета конечного конечного элемента), например. Также не будет что-то вроде документа Word. Однако некоторые делают это. Так; ваши данные в порядке с этим...

Ответ 3

Используя StreamWriter и ссылаясь на DotNetPerls, обязательно добавьте True boolean в конструктор StreamWriter, если в противном случае оставленный пустой, он будет перезаписываться, как обычно:

using System.IO;

class Program
{
    static void Main()
    {
    // 1: Write single line to new file
    using (StreamWriter writer = new StreamWriter("C:\\log.txt", true))
    {
        writer.WriteLine("Important data line 1");
    }
    // 2: Append line to the file
    using (StreamWriter writer = new StreamWriter("C:\\log.txt", true))
    {
        writer.WriteLine("Line 2");
    }
    }
}

Output
    (File "log.txt" contains these lines.)

Important data line 1
Line 2

Это решение, которое я действительно искал, когда я попал сюда из Google, хотя он не был бинарным файлом, но надеюсь, что он поможет кому-то другому.