DataOutputStream ?

Hallo,

ich habe in nem Programm folgende Zeile gesehen:

DataOutputStream out = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(„c:\test.txt“)));

Also das Problem ist folgendes, ich weiß nicht genau warum in den Klammern nach dem DataOS, auch noch ein BufferedOS und eine FileOS geöffnet werden.

In dem Programm wird übrigens später per out.writeChar() ein Buchstabe in die Textdatei geschrieben.

Grüße Florian

Also das Problem ist folgendes, ich weiß nicht genau warum in
den Klammern nach dem DataOS, auch noch ein BufferedOS und
eine FileOS geöffnet werden.

FileOutputStream um in eine Datei zu schreiben. Der DataOutputStream schreibt nur auf einen anderen OutputStream, nicht direkt auf ein Ziel.

BufferedOutputStream ist nicht zwingend notwendig, vermeidet aber, dass jedes geschriebene Byte einzeln in die Datei geschrieben wird. Anstatt dessen wird zuerst immer ein Buffer gefüllt und wenn der voll ist wird geschrieben (oder wenn explizit zum schreiben angewiesen wird).

Was also passiert ist, dass du über Methoden des DataOutputStreams jetzt primitive Datentypen schreiben kannst. Die werden zuerst byteweise an den BufferedOutputStream weitergegeben, der sie dann geblockt an den FileOutputStream weitergibt. Der zuguterletzt schreibt die Daten in die Datei.

Grüße, Robert

Danke für die schnelle Antwort!
Echt Klasse!

Grüße Florian