Dateien und Datenströme beschreiben
Dateien und Datenströme beschreiben
Dateien und Datenströme sind zentrale Konzepte der Ein- und Ausgabe (I/O) in der Programmierung. Sie ermöglichen das Speichern, Lesen und Übertragen von Informationen – lokal auf dem Rechner oder über Netzwerke.
Dateien
Eine Datei ist eine Sammlung von Daten, die dauerhaft auf einem Speichermedium gespeichert wird. Beispiele: Textdateien, Bilder, Konfigurationsdateien, Logdateien.
Eigenschaften von Dateien:
- besitzen einen Namen und eine Endung
- werden im Dateisystem abgelegt
- sind dauerhaft gespeichert, bis sie überschrieben oder gelöscht werden
- können sequentiell oder blockweise gelesen werden
Datenströme (Streams)
Ein Stream ist ein kontinuierlicher Datenfluss zwischen einer Quelle und einem Ziel. Er wird nicht dauerhaft gespeichert, sondern verarbeitet Daten „im Fluss“.
Beispiele:
- Tastatureingaben
- Netzwerkverbindungen
- Lesen/Schreiben von Dateien in kleinen Stücken
- Datenübertragung zwischen Programmen
Java unterscheidet zwei Hauptarten:
Byte-Streams
- lesen und schreiben rohe Bytes
- geeignet für Binärdaten (Bilder, Audio, PDF etc.)
Beispiele: `InputStream`, `OutputStream`, `FileInputStream`
Character-Streams
- lesen und schreiben Zeichen (UTF-8, Unicode)
- geeignet für Textdateien
Beispiele: `Reader`, `Writer`, `FileReader`, `BufferedWriter`
Warum Streams verwenden?
- Dateien müssen nicht komplett in den Speicher geladen werden
- effizient bei großen Datenmengen
- ermöglichen Verarbeitung während des Lesens
- trennen Datenquelle und Datenverarbeitung (sauberes Design)
Beispiel: Lesen einer Datei (Java)
BufferedReader reader = new BufferedReader(new FileReader("daten.txt"));
String zeile;
while ((zeile = reader.readLine()) != null) {
System.out.println(zeile);
}
reader.close();
Beispiel: Schreiben einer Datei (Java)
BufferedWriter writer = new BufferedWriter(new FileWriter("ausgabe.txt"));
writer.write("Hallo Welt!");
writer.close();
Kurzmerksatz
Dateien speichern Daten dauerhaft, Datenströme verarbeiten Daten im Fluss und ermöglichen effizientes Lesen und Schreiben.
