Come si legge un array di byte non elaborato da qualsiasi file e si scrive nuovamente l'array di byte in un nuovo file?C# - Come faccio a leggere e scrivere un file binario?
risposta
(edit: notare che la domanda è cambiato, ma non ha menzionato byte[]
inizialmente; vedi revision 1)
Beh, File.Copy
salti in mente; ma per il resto questo suona come uno scenario 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);
}
}
sai di TextReader e TextWriter, e loro discendenti StreamReader e StreamWriter? Penso che questi risolveranno il tuo problema perché gestiscono le codifiche, BinaryReader non conosce codifiche o persino testo, riguarda solo i byte.
Jeremy ha chiesto di leggere e scrivere file BINARY, vero? – pavium
Se si tratta solo di dati binari, allora perché c'è qualche problema con la codifica del char? –
byte[] data = File.ReadAllBytes(path1);
File.WriteAllBytes(path2, data);
Si noti che per file di grandi dimensioni che potrebbero essere * molto * costosi. –
Aggiunta di un aggiornato risposta,
using (var source = File.OpenRead(inPath))
{
using (var dest = File.Create(outPath))
{
source.CopyTo(dest);
}
}
è possibile specificare la dimensione del buffer
using (var source = File.OpenRead(inPath))
{
using (var dest = File.Create(outPath))
{
source.CopyTo(dest, 2048); // or something bigger.
}
}
o si potrebbe eseguire l'operazione su un altro thread,
using (var source = File.OpenRead(inPath))
{
using (var dest = File.Create(outPath))
{
await source.CopyToAsync(dest);
}
}
che sarebbe utile quando il thread principale ha a che fare altri lavori, come con WPF e le applicazioni di Windows Store.
- 1. VB - Come faccio a leggere e scrivere un file binario?
- 2. Leggere e scrivere int in un file binario in C++
- 3. Come faccio a leggere/scrivere file binari?
- 4. FlatBuffers: scrivere e leggere dal file binario?
- 5. Come faccio a leggere/scrivere file compressi con gzip?
- 6. Come leggere il file binario in C#?
- 7. Come leggere e scrivere un file in C#
- 8. Impossibile scrivere un file binario
- 9. come leggere efficientemente un file binario in un vettore C++
- 10. Leggere e scrivere un file in groove
- 11. leggere un file binario (python)
- 12. Come faccio a rendere Git un file come binario?
- 13. FileStream che blocca un file per leggere e scrivere C#
- 14. Utilizzando Python, come faccio a leggere/scrivere i dati in memoria come farei con un file?
- 15. Leggere e scrivere byte da un file (C++)
- 16. Python come scrivere in un file binario?
- 17. file binario a stringa
- 18. Come faccio a leggere e inode traslazione
- 19. Come leggere e scrivere file xml?
- 20. PHP leggere e scrivere JSON da file
- 21. Come faccio a leggere e modificare un file .txt in C#?
- 22. come scrivere correttamente il vettore sul file binario in C++?
- 23. In Clojure 1.3, Come leggere e scrivere un file
- 24. Python statistiche: Come faccio a scrivere ad un (leggibile) file
- 25. Leggere un file binario in una matrice
- 26. Come scrivere e leggere un file con una HashMap?
- 27. Leggere e scrivere in un file usando VBScript
- 28. C# TcpClient, leggere e scrivere stream simultaneamente
- 29. scrittura intero a file binario (C++)
- 30. Bash: scrivere per intero file binario
Codifica e scrittura binaria? La codifica è una cosa "stringa". Non dovresti avere problemi quando hai a che fare con dati binari. –
Jeremy, vuoi dire "a seconda del tipo di file il * formato * varia ..."? se il codice che stai utilizzando cerca di leggere/scrivere file con il tipo/formato di file sbagliato sono sicuro che ci sarebbe corruzione. – pavium
Leggere un file come 'byte []' non è necessariamente una buona idea; questo potrebbe essere ** molto ** costoso per file di grandi dimensioni. –