Jak mogę napisać tablicę binarną do pliku w C#?

Muszę zapisać poniższą tablicę binarną do pliku:

byte[] data = new byte[] { 0x55, 0xAA, 0x02};

Chcę umieścić w pliku dokładne dane (55,AA,02). Daj mi znać, jak to zrobić.


person user209293    schedule 23.12.2010    source źródło
comment
Możliwe duplikaty: stackoverflow.com/questions/381508/, stackoverflow.com /questions/128674/, stackoverflow.com/questions/224239/   -  person Cody Gray    schedule 23.12.2010
comment
Użyj BitConverter.ToString(data), aby utworzyć ciąg, który można zapisać w pliku tekstowym.   -  person Hans Passant    schedule 23.12.2010


Odpowiedzi (4)


Iirc, którego możesz użyć

string content = BitConverter.ToString(data);

aby pobrać ciąg zawierający treść, a następnie zapisać ten ciąg w żądanym pliku.

person Anton    schedule 23.12.2010

Możesz użyć przeciążenia Stream.Write(byte[] buffer).

I jeszcze łatwiej,

   System.IO.File.WriteAllBytes("fileName", data);
person Henk Holterman    schedule 23.12.2010
comment
Kiedy używam funkcji aboe, w pliku wyświetlane są nieczytelne znaki. Chcę, aby dane były wyświetlane dokładnie. - person user209293; 23.12.2010
comment
To dlatego, że piszesz znaki, których nie można wydrukować. 0x02 nie jest „drukowalnym” kodem znaków. Chcesz użyć edytora szesnastkowego, aby wyświetlić plik wyjściowy i sprawdzić, czy dokładnie zapisał dane. - person Andrei Sosnin; 23.12.2010
comment
@user209293 Twoje dane zawierają niedrukowalne kody podczas przeglądania jako ASCII/ANSI/UTF8. Musisz więc dokładniej określić, jaki wynik chcesz. Obecnie Twoje komentarze są sprzeczne z wymaganiami pytania. - person Henk Holterman; 23.12.2010

Spróbuj wykonać następujące czynności:

FileStream fs = new FileStream(Application.StartupPath + "\\data.bin", FileMode.Create);
BinaryWriter bw = new BinaryWriter(fs);
byte[] data = new byte[] { 0x55, 0xAA, 0x02 };
bw.Write(data);
bw.Close();
fs.Close();
person Rajesh Kumar G    schedule 23.12.2010
comment
otwórz plik wyjściowy w microsoft visual studio, zobaczysz wynik, który chcesz w formacie binarnym! - person Rajesh Kumar G; 23.12.2010

Możesz użyć File.WriteAllBytes(string path, byte[] bytes).

person Botz3000    schedule 23.12.2010
comment
Kiedy używam funkcji aboe, w pliku wyświetlane są nieczytelne znaki. Chcę, aby dane były wyświetlane dokładnie - person user209293; 23.12.2010
comment
@user209293, użyj edytora szesnastkowego. Nie oczekuj, że edytor tekstu wyświetli niedrukowalne znaki, takie jak 0x02. - person Darin Dimitrov; 23.12.2010
comment
Jeśli nie chcesz zapisywać dokładnych danych, ale raczej ciąg reprezentujący twoje wartości bajtowe do pliku, może powinieneś przeformułować swoje pytanie. - person Botz3000; 23.12.2010