Jak odczytać surową tablicę bajtów z dowolnego pliku i zapisać tablicę bajtów z powrotem do nowego pliku?C# - Jak mogę odczytać i zapisać plik binarny?
Odpowiedz
(edit: zauważ, że kwestia zmieniła; nie wspominając byte[]
początkowo patrz revision 1)
No File.Copy
skoków do głowy; ale inaczej to brzmi jak Stream
scenariusz:
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);
}
}
wiesz o TextReader i TextWriter, a ich potomkowie StreamReader i StreamWriter? Myślę, że rozwiążą to twój problem, ponieważ obsługują kodowanie, BinaryReader nie wie o kodowaniu, a nawet tekście, dotyczy tylko bajtów.
Jeremy zapytał o czytanie i pisanie plików BINARY, prawda? – pavium
Jeśli jest to tylko dane binarne, to dlaczego jest jakiś problem z kodowaniem znaków? –
byte[] data = File.ReadAllBytes(path1);
File.WriteAllBytes(path2, data);
Należy pamiętać, że w przypadku dużych plików, które mogą być * bardzo * drogie. –
dodanie aktualne odpowiedzi
using (var source = File.OpenRead(inPath))
{
using (var dest = File.Create(outPath))
{
source.CopyTo(dest);
}
}
można opcjonalnie określić wielkość bufora
using (var source = File.OpenRead(inPath))
{
using (var dest = File.Create(outPath))
{
source.CopyTo(dest, 2048); // or something bigger.
}
}
czy można wykonać operację w innym wątku,
using (var source = File.OpenRead(inPath))
{
using (var dest = File.Create(outPath))
{
await source.CopyToAsync(dest);
}
}
która byłaby przydatna, gdy główny wątek ma wykonywać inne czynności, jak z WPF i Windows Store aplikacji.
- 1. VB - Jak mogę odczytać i zapisać plik binarny?
- 2. Jak mogę odczytać/zapisać pliki binarne?
- 3. jak sprawnie odczytać plik binarny do wektora C++
- 4. Jak odczytać plik i zapisać w pliku tekstowym?
- 5. odczytać cały plik binarny do tablicy w pojedynczy połączeń C++
- 6. plik binarny ciąg
- 7. Jak mogę odczytać i zapisać dane JPEG w ujęciu pikselowym?
- 8. Jak odczytać plik binarny za pośrednictwem protokołu HTTP w węźle?
- 9. Jak mogę utworzyć plik binarny w Perlu?
- 10. Jak zapisać plik binarny w bazie danych sql?
- 11. Jak odczytać rosnący plik tekstowy w C++?
- 12. Czy mogę umieścić plik binarny na stdin? C#
- 13. Jak scalić plik binarny?
- 14. Jak mogę odczytać bazę danych/plik Pythona z C?
- 15. Jak mogę pobrać plik binarny z MongoDB po jego zapisaniu?
- 16. Jak otworzyć (odczytać-zapisać) lub utworzyć plik z dozwolonym obcięciem?
- 17. Jak odczytać plik do wektora w C++?
- 18. Jak odczytać/zapisać ustawienia App.config w PowerShell?
- 19. C# Obiekt binarny Serializacja
- 20. Jak odczytać plik json do C++ ciąg
- 21. Jak odczytać plik XML w języku C#?
- 22. odczytać plik PPM i zapisać go w tablicy; kodowane za pomocą C
- 23. Jak zainstalować plik binarny sequelize.js?
- 24. Jak odczytać i nadpisać plik tekstowy w C?
- 25. Jak odczytać i zapisać dbf w natywny sposób?
- 26. Jak odczytać/zapisać wartości typu z pamięci "surowej" w C?
- 27. Jak odczytać plik rejestru.bin?
- 28. Plik obiektowy na kod binarny
- 29. Jak odczytać i zapisać UTF-8 na dysku na Androidzie?
- 30. Podziel i dołącz plik binarny do java
Kodowanie i BinaryWriter? Kodowanie to "string". Nie powinieneś mieć problemu, kiedy masz do czynienia z danymi binarnymi. –
Jeremy, masz na myśli "w zależności od typu pliku * format * zmienia się ..."? jeśli kod, którego używasz, próbuje odczytać/zapisać pliki o niewłaściwym typie/formacie pliku, jestem pewien, że będzie korupcja. – pavium
Czytanie pliku jako 'byte []' niekoniecznie jest dobrym pomysłem; może to być ** bardzo ** drogie dla dużych plików. –