Ich arbeite an einer Huffman Java-Anwendung, und ich bin fast fertig. Ich habe jedoch ein Problem. Ich muss eine Zeichenfolge von etwas wie "101011101010" in einer Datei speichern. Wenn ich es mit meinem aktuellen Code speichere, speichert es es als Zeichen, die 1 Byte alle 0 oder 1 aufnehmen. Ich bin ziemlich sicher, dass es möglich ist, alle 0/1 als ein bisschen zu speichern.Zeichenfolge von 0 und 1 zu Datei als Bits
Ich habe schon einige Dinge mit BitSet und Integer.valueOf versucht, aber ich kann sie nicht zur Arbeit bringen. Dies ist mein aktueller Code:
FileOutputStream fos = new FileOutputStream("encoded.bin");
fos.write(encoded.getBytes());
fos.close();
Wo codiert 'ist ein String, der wie sein: "0101011101". Wenn ich versuche, es als Ganzzahl zu speichern, wird die führende 0 entfernt.
Vielen Dank im Voraus!
EDIT: Huffman ist eine Komprimierungsmethode, daher sollte die ausgegebene Datei so klein wie möglich sein.
Warum soll die Zeichenfolge in Ganzzahl konvertiert werden? Ist es nicht möglich, den String mit führenden 0s zu speichern, wenn ein String ohne führende 0s gespeichert werden kann? Was genau ist dein Problem? – Pat
Nun, es ist eine Komprimierungsmethode. Also wird ein 'a' oder 'b' in etwas wie 0110 übersetzt (was 4 Bits und nicht 1 Byte ist). Das Problem ist, dass ich die 1 und 0 als 1 Byte speichere, so dass es keine Komprimierung gibt (es ist jetzt noch schlimmer). –