4.1. Streams und Reader
Allgemein
- Streams immer schließen, daher am besten mit Try-With-Ressources verwenden
- Bei Sockets immer zuerst die OutputStreams öffnen oder kreuzen, niemals auf beiden Seiten zuerst die InputStreams öffnen
- Falls man ein Objekt über einen Stream schreiben/lesen möchte, muss man das Interface
Serializable
implementieren und das Attribut SerialVersionUID
mit einer eindeutigen Nummer initialisieren.
- Streams können “verschachtelt” werden:
new DataInputStream(new BufferedInputStream(new FileInputStream(file)))
Streams/Reader
- BinaryStreams (Input-/OutputStream)
DataInputStream
/DataOutputStrea
ObjectInputStream
/ObjectOutputStream
- CharacterStreams (Reader/Writer)
BufferedReader
/BufferedWriter
PrintWriter
Dateien
- Bei Dateien Streams immer buffern
- Öffnet man einen Stream auf eine vorhandene Datei, so wird diese überschrieben.
- Falls man etwas anhängen möchte, so kann man im FileWriter-/FileOutputStream-Konstruktor als 2. Argument true übergeben, um dadurch den Append-Modus aktivieren zu können
- Binär:
FileInputStream
/FileOutputStream
- Text:
FileReader
/FileWriter
(evt. Scanner
)
Beispiel