Mam zestaw bitów i chcę go zapisać do pliku - natknąłem się na rozwiązanie do użycia obiektu ObjectOutputStream przy użyciu metody writeObject.Zapisywanie zestawu bitów do pliku w java
Spojrzałem na ObjectOutputStream w Java API i zobaczyłem, że można napisać innych rzeczy (bajt, int, short itp)
próbowałem sprawdzić klasę więc próbowałem napisać bajt w pliku używając następującego kodu, ale wynik daje mi plik o 7 bajtach zamiast 1 bajcie
moje pytanie brzmi: jakie są pierwsze 6 bajtów w pliku? dlaczego oni tam są?
Moje pytanie dotyczy zestawu bitowego, ponieważ nie chcę zaczynać wpisywania dużej ilości danych do pliku i zdać sobie sprawę, że mam losowe bajty wstawione do pliku, nie wiedząc, jakie one są.
oto kod:
byte[] bt = new byte[]{'A'};
File outFile = new File("testOut.txt");
FileOutputStream fos = new FileOutputStream(outFile);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.write(bt);
oos.close();
dzięki za wszelką pomoc
Avner
, więc jeśli rozumiem cię poprawnie - za każdym razem, gdy piszę coś przy użyciu ObjectOutputStream, otrzymuję poważny narzut dla każdego zapisu. na przykład, jeśli napiszę int, krótki, bajt, a następnie ciąg otrzymuję 4 zestawy dodatkowych danych dla każdej pozycji, którą piszę? – Avner
Nie. Tylko metoda writeObject() dodaje nagłówek typu. Metoda writeUTF() dodaje przedrostek o długości 2 bajtów. Prymitywne metody writeXX() nie dodają żadnych narzutów. Przeczytaj dokument API, aby uzyskać szczegółowe informacje. –
Należy również pamiętać, że informacja o typie jest dla obiektu. Dla obiektu, który składa się zasadniczo z prymitywnej tablicy (takiej jak BitSet), narzut jest stały, bez względu na to, jak dużą macierz. –