Java Datei Eingabe und Ausgabe - die wesentlichen Methoden und ihre Verwendung

yxy

Lieutenant
Registriert
Juli 2014
Beiträge
552
Hallo,

habe mir mal ein paar Möglichkeiten zum Datei Einlesen und Ausgeben angschaut und versucht sie etwas (nach der Funktion) voneinander zu trennen. Dabei kam folgendes raus. Meine Frage ist nun: Stimmt das, oder würdet ihr noch etwas ändern?

Wann verwende ich was?
OutputStreamWriter/InputStreamReader bzw. FileWriter/FileReader (bequemer):

Zum Schreiben / Einlesen von char-Arrays bzw. Strings (die einzelne Buchstaben oder als Buchstaben konvertierte Zahlen enthalten).
  • Ausgabe als String und auch als String eingelesen bzw. kann mit Scanner wieder als Typ eingelesen werden.
DataOutputStream/DataInputStream
Zum Schreiben / Einlesen von primitiven Datentypen und Strings
  • Ausgabe wird binär als jeweiliger Typ konvertiert und als jeweiliger Typ eingelesen. [writeInt(integer), writeDouble(gleitkommazahl), writeUTF(String) bzw. readInt(), readDouble(); readUTF() ]

ObjectOutputStream/ObjectInputStream
Zum Schreiben / Einlesen von ganzen Objekten (z.B. Arrays) mit allen referenzierten Objekten und primitiven Datentypen
  • Ausgabe wird binär konvertiert und als „Object“ eingelesen (muss gecasted werden).

printWriter
Zum einzelnen Schreiben / Einlesen von primitiven Datentypen (char, float, boolean,…).
  • Ausgabe wird in String konvertiert und kann mit Scanner wieder als Typ eingelesen werden.
 
Jo, kommt hin, würd ich sagen.
Du kannst auch native Input- und OutputStream verwenden um Daten byteweise zu lesen und zu schreiben. Grundsätzlich sollte man, so finde ich, auch mit den primitiven Streams umgehen können, denn Caching und Buffering können einem u.U. einen Strich durch die Rechnung machen, wenn man mal "flush" vergisst.

Und natürlich bei Texten IMMER auf's Encoding achten. Das ist manchal ganz ganz lästig :-)
 
Das freut mich zu hören. Danke :)
 
Zurück
Oben