c# - modificar - modificacion de archivos binarios en c
¿Cómo agregar datos a un archivo binario? (3)
Tengo un archivo binario al que quiero anexar una parte de los datos al final del archivo, ¿cómo puedo lograrlo utilizando C # y .net? ¿También hay alguna consideración que tomar al escribir al final de un archivo binario? muchas gracias por tu ayuda.
Deberías poder hacer esto a través de Stream
:
using (FileStream data = new FileStream(path, FileMode.Append))
{
data.Write(...);
}
En cuanto a las consideraciones, la principal sería: ¿el formato de datos subyacente es compatible? Muchos no lo hacen, a menos que sean sus propios datos en bruto, texto, etc. Un documento xml bien formado no admite la adición (sin considerar el elemento final), por ejemplo. Tampoco algo parecido a un documento de Word. Algunos lo hacen, sin embargo. Asi que; ¿Sus datos están bien con esto?
Usando StreamWriter
y StreamWriter
referencia a DotNetPerls , asegúrese de agregar el True
StreamWriter
booleano al constructor StreamWriter
, si de lo contrario se deja en blanco, se sobrescribirá como de costumbre:
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
Esta es la solución que estaba buscando cuando llegué de Google, aunque no era un archivo binario, espero que ayude a alguien más.
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);
}
}