# Bin Datei erstellen



## saladin100 (3. Nov 2011)

Servus Leute,

Mir wurden letzt die verschiedenen Reader und Writer vorgestellt und ich wollte jetzt ein wenig mit der Klasse DataOutputStream experimentieren. Jedenfalls hat mein Prof in seinem Beispiel damit eine binärdatei beschrieben. Das möchte ich auch... ich hab versucht rauszufinden wie ich eine solche Datei erstelle.. und bin auf keinen grünen Zweig gekommen.... wie zum Teufel geht das?

Grüße saladin

PS: Habe Mac


----------



## nrg (3. Nov 2011)

probier den DataOutputStream doch am besten mal in Verbindung mit einem FileOutputStream


----------



## saladin100 (3. Nov 2011)

Ok ich habs hingekreig ne biänrdatei zu erstellen.. Mein DataOutputStream seht in Verbindung mit einem FileOutputStream. Jetzt funktioniert wieder etwas nicht... mit dem Befehl writeByte(8) sollte ja eigentlich die Zahl 8 als 8 Bit format in die Binärdatei geschrieben werden. d.h. wenn ich nach dem ausführen des programms mit einem hexeditor in die datei reinschaue.. sollte ich  doch 00111000 in der datei sehen... oder?


----------



## Michael... (3. Nov 2011)

eine 8 (dec) ist binaer 00001000 und hex 08, also solltest Du in Deinem HexEditor eine 08 sehen.


----------



## saladin100 (3. Nov 2011)

für 8 steht in meinem HexEditor wirklich 00111000 als binär und als hexa 38... aber du hast schon recht... komisch... ja abgesehen davon funktioniert die writeByte Sache trotzdem nicht... aber es sollte doch funken oder?


----------



## XHelp (3. Nov 2011)

38h oder 56 in Dezimalsystem ist der ASCII Code des Zeichen 
	
	
	
	





```
8
```
. D.h. du schreibst nicht 
	
	
	
	





```
8
```
 rein, sondern 
	
	
	
	





```
'8'
```
, was ein großer Unterschied ist


----------



## Gast2 (3. Nov 2011)

```
DataOutputStream dos = new DataOutputStream(new FileOutputStream(new File("hextest")));
		dos.writeByte(8);
		dos.close();
```
Der Code schreibt korrekterweise 08h in die Datei. Wie schaut dein Code aus?


----------



## Michael... (3. Nov 2011)

Kann es sein, dass Du 8 als String rausschreibst? das wäre nämlich ASCII 56 und somit HEX 38.


----------



## saladin100 (3. Nov 2011)

kann es tatsächlich sein dass es daran liegt, dass ich vergessen hab close() zu machen ?


----------



## Gast2 (3. Nov 2011)

Nein, daran kanns eigentlich nicht liegen.
Poste doch mal deinen Code..


----------



## saladin100 (3. Nov 2011)

es funkt doch jetzt.. nachdem ich  close dazugeschrieben hab... ich hatte dazwischen noch einen bufferedreader...


----------



## Murray (3. Nov 2011)

Reader und Writer sind nur für textuelle Daten - verwende die nie mit Binärdaten!


----------



## saladin100 (3. Nov 2011)

Ich meinte BufferedOutputStream .... 

naja danke an alle... ich denke jetzt komm ich besser voran


----------

