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