Bit -> Datei -> Bit Fehlerhaft

Network

Top Contributor
Hi,

Ich hab ein Programm geschrieben, das eigen definierte Bits in eine Textdatei schreibt.
Ob es geklappt hat soll dann nochmal überprüft werden, indem man die Datei ausliest und die Bits vergleicht.

Funktioniert leider nicht. Die Überprüfungsausgabe gibt es völlig anderes heraus!!!

Mein Code:
Java:
FileOutputStream fos = new FileOutputStream( "Test.1l" );
			System.out.println( "NewZeilenBit: " + newzeilenbit ); \\Die zu schreibenden Bits in einer Zeile
			int n = 0;
			for( int i = 0; i < newzeilenbit.length()-7; i+=8 )
			{
				fos.write( Integer.parseInt( newzeilenbit.substring(i,(i+8)) ) ); \\Anscheinend kann ich nicht alles auf einmal schreiben, also in Bytes unterteilt.
			}
			fos.close();
			fis = new FileInputStream("Test.1l"); \\Geschriebene Datei wird wieder ausgelesen
			while( (bit = fis.read()) != -1 )
			{
				w = Integer.toBinaryString( bit );
				zeilenbit += w;
			}
			System.out.println( "Pruefung: " + zeilenbit ); \\Alle ausgelesenen Bits werden wieder in einer Zeile dargestellt

Kann dort jmd. einen Fehler entdecken was ich falsch mache?

Hier noch die Ausgabe:
NewZeilenBit: 00000001001000100011010000000001001000100101011001111 (geht nochn Stück so weiter)
Pruefung: 0100100001100001011011000110110001101001001000001001 usw...


Danke für jede Hilfe!
 
Hab dir mal ein Beispiel geschustert (liest nochmal den letzten Thread durch ;-)

Java:
public static void main(String[] args) throws IOException {
	File file = new File("blub");
	BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file));
	int toWrite = Integer.parseInt("101010", 2); // 42
	System.out.println(toWrite);
	
	bos.write(toWrite);
	bos.close();
	
	BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
	int i = bis.read();
	bis.close();
	System.out.println(i);
	System.out.println("base2: " + Integer.toBinaryString(i));
}
 
Und ein erneutes Danke. 😉

Das wahr sogar mein erster Code (bis auf den BufferedReader, aber ich denke FileInputReader reicht auch, macht ja keinen Unterschied)
Hab wegen der ganzen Klammerwirtschaft nur die Zahlen in die falsche innere Klammer gebracht, und dachte dann das geht nicht anderstherum -.-

😀
 

Zurück
Oben