¿Cómo leo un conjunto de bytes sin formato de cualquier archivo y lo vuelvo a escribir en un nuevo archivo?C# - ¿Cómo leo y escribo un archivo binario?
Respuesta
(edit: tenga en cuenta que la cuestión ha cambiado, sino que no mencionó inicialmente byte[]
; ver revision 1)
Bueno, File.Copy
saltos a la mente; pero por lo demás esto suena como un escenario Stream
:
using (Stream source = File.OpenRead(inPath))
using (Stream dest = File.Create(outPath)) {
byte[] buffer = new byte[2048]; // pick size
int bytesRead;
while((bytesRead = source.Read(buffer, 0, buffer.Length)) > 0) {
dest.Write(buffer, 0, bytesRead);
}
}
sabe usted de TextReader y TextWriter, y sus descendientes StreamReader y StreamWriter? Creo que esto resolverá tu problema porque manejan codificaciones, BinaryReader no sabe sobre codificaciones o incluso texto, solo se ocupa de los bytes.
Jeremy preguntó acerca de leer y escribir archivos BINARY, ¿no? – pavium
Si solo se trata de datos binarios, ¿por qué hay algún problema con la codificación de caracteres? –
byte[] data = File.ReadAllBytes(path1);
File.WriteAllBytes(path2, data);
Tenga en cuenta que para archivos grandes que pueden ser * muy * costosos. –
Adición de una respuesta hasta la fecha,
using (var source = File.OpenRead(inPath))
{
using (var dest = File.Create(outPath))
{
source.CopyTo(dest);
}
}
opcionalmente puede especificar el tamaño del búfer
using (var source = File.OpenRead(inPath))
{
using (var dest = File.Create(outPath))
{
source.CopyTo(dest, 2048); // or something bigger.
}
}
o se puede realizar la operación en otro hilo,
using (var source = File.OpenRead(inPath))
{
using (var dest = File.Create(outPath))
{
await source.CopyToAsync(dest);
}
}
que sería útil cuando el hilo principal tiene que hacer otro trabajo, al igual que con WPF y aplicaciones de Windows Store.
- 1. VB - ¿Cómo leo y escribo un archivo binario?
- 2. ¿Cómo leo/escribo archivos descomprimidos?
- 3. ¿Cómo creo, escribo y leo datos de sesión en CakePHP?
- 4. ¿Cómo leo y edito un archivo .txt en C#?
- 5. ¿Cómo leo/escribo un archivo XML cifrado usando LINQ to XML?
- 6. ¿Cómo escribo binario literal en VB.NET?
- 7. ¿Cómo leo un archivo en App Engine?
- 8. ¿Cómo fusiono un archivo binario?
- 9. ¿Cómo leer el archivo binario en C#?
- 10. ¿Cómo escribo en un archivo oculto?
- 11. ¿Cómo anexar datos a un archivo binario?
- 12. Binario "cola" un archivo
- 13. ¿Cómo escribo un temporizador en Objective-C?
- 14. ¿Cómo leo de un archivo en el mismo directorio?
- 15. ¿Cómo escribo un breve literal en C++?
- 16. ¿Cómo leo esta declaración compleja en C?
- 17. ¿Cómo escribo un archivo txt usando Microsoft Dynamics AX?
- 18. ¿Cómo escribo una cadena XML en un archivo?
- 19. escribiendo entero en archivo binario (C++)
- 20. Generando un archivo binario aleatorio
- 21. ¿Cómo leo un archivo de imagen usando Python?
- 22. ¿Cómo leo un archivo que se actualiza constantemente?
- 23. ¿Cómo leo contenido de ARCHIVO en QML?
- 24. ¿Cómo leo un archivo gzip línea por línea?
- 25. leer un archivo binario (pitón)
- 26. ¿Cómo escribo un archivo de cabecera C que se puede usar en programas C++?
- 27. ¿Cómo leo líneas en un archivo de texto en OCaml?
- 28. ¿Cómo leo una línea aleatoria de un archivo en Python?
- 29. Leyendo y escribiendo en el medio de un archivo binario en C/C++
- 30. ¿Cómo leo el correo entrante usando C#
Encoding & Binarywriter? La codificación es una cosa "cuerda". No debería tener un problema cuando se trata de datos binarios. –
Jeremy, ¿quiere decir "dependiendo del tipo de archivo el * formato * varía ..."? si el código que está utilizando intenta leer/escribir archivos con el tipo/formato de archivo incorrecto, estoy seguro de que habría corrupción. – pavium
Leer un archivo como 'byte []' no es necesariamente una buena idea; esto podría ser ** muy ** costoso para archivos grandes. –