Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| programmierung:eingabe [2024/11/30 18:26] – created swe | programmierung:eingabe [2025/12/20 14:53] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| < | < | ||
| - | --- | + | |
| - | marp: true | + | |
| - | --- | + | |
| # Dateien und Datenströme | # Dateien und Datenströme | ||
| - | --- | ||
| - | |||
| - | |||
| - | # Dateien | ||
| - | ## Dateien: Speicherstrukturen für Daten | + | ## Dateien |
| + | - Speicherstrukturen für Daten | ||
| - Herkunft des Wortes _file_ | - Herkunft des Wortes _file_ | ||
| - aus dem Altfranzösischen Wort " | - aus dem Altfranzösischen Wort " | ||
| Line 16: | Line 11: | ||
| - Im Deutschen: Datei = Daten + Kartei | - Im Deutschen: Datei = Daten + Kartei | ||
| --- | --- | ||
| - | # Datenströme | + | ## Datenströme |
| - kontinuierliche Datenflüsse von Quelle zu Ziel oder anders herum | - kontinuierliche Datenflüsse von Quelle zu Ziel oder anders herum | ||
| Line 34: | Line 29: | ||
| --- | --- | ||
| - | # Java I/ | + | ## Java I/ |
| ```java | ```java | ||
| import java.io.* | import java.io.* | ||
| ``` | ``` | ||
| - | Die `java.io`-Bibliothek | + | Die java.io-Bibliothek |
| - für Ein- und Ausgabefunktionen verwendet werden | - für Ein- und Ausgabefunktionen verwendet werden | ||
| - Daten lesen/ | - Daten lesen/ | ||
| Line 51: | Line 46: | ||
| | | ||
| - | ## Wichtigste Klassen in `java.io` | + | ## Wichtigste Klassen in java.io |
| ### Byte-Streams | ### Byte-Streams | ||
| - Verschiede InputStreams/ | - Verschiede InputStreams/ | ||
| Line 81: | Line 76: | ||
| } | } | ||
| ``` | ``` | ||
| - | --- | + | |
| - | ## Wichtigste Klassen in `java.io` | + | |
| ### Text-Streams | ### Text-Streams | ||
| - Verschiedene Reader/ | - Verschiedene Reader/ | ||
| - Arbeiten mit Zeichen und unterstützen Encoding wie UTF-8 oder UTF-16 | - Arbeiten mit Zeichen und unterstützen Encoding wie UTF-8 oder UTF-16 | ||
| - `FileReader`/ | - `FileReader`/ | ||
| - | | + | |
| + | | ||
| - Zeichen für Zeichen | - Zeichen für Zeichen | ||
| - `BufferedReader`/ | - `BufferedReader`/ | ||
| Line 93: | Line 88: | ||
| - Effizientere Verarbeitung von Textdateien | - Effizientere Verarbeitung von Textdateien | ||
| --- | --- | ||
| - | #### `FileReader`/ `FileWriter` | + | #### FileReader/ FileWriter |
| ```java | ```java | ||
| import java.io.FileReader; | import java.io.FileReader; | ||
| Line 111: | Line 106: | ||
| } | } | ||
| ``` | ``` | ||
| - | --- | + | |
| - | #### `FileReader`/ `FileWriter` | + | #### FileReader/ FileWriter |
| ```java | ```java | ||
| import java.io.FileWriter; | import java.io.FileWriter; | ||
| Line 139: | Line 134: | ||
| ``` | ``` | ||
| --- | --- | ||
| - | #### `BufferedReader`/ `BufferedWriter` | + | #### BufferedReader/ |
| ```java | ```java | ||
| import java.io.BufferedReader; | import java.io.BufferedReader; | ||
| Line 160: | Line 155: | ||
| ``` | ``` | ||
| - | --- | + | |
| - | #### `BufferedReader`/ `BufferedWriter` | + | #### BufferedReader/ |
| ```java | ```java | ||
| Line 194: | Line 189: | ||
| - effizientes Lesen von Textdaten. | - effizientes Lesen von Textdaten. | ||
| - **Best Practices**: | - **Best Practices**: | ||
| - | - **try-with-resources**: | + | - **try-with-resources**: |
| + | zu vermeiden. | ||
| - **Fehlerbehandlung**: | - **Fehlerbehandlung**: | ||
| --- | --- | ||
| - | ## What about `Scanner`? | + | ### Datei neu erstellen vs. Daten an bestehende Datei anhängen |
| + | |||
| + | ```java | ||
| + | ... | ||
| + | public static void main(String[] args) { | ||
| + | String filePath = " | ||
| + | |||
| + | // Schreiben in die Datei (überschreibt den bestehenden Inhalt) | ||
| + | try (BufferedWriter writer = new BufferedWriter(new FileWriter(filePath))) { | ||
| + | writer.write(" | ||
| + | writer.newLine(); | ||
| + | writer.write(" | ||
| + | System.out.println(" | ||
| + | } catch (IOException e) { | ||
| + | System.out.println(" | ||
| + | } | ||
| + | |||
| + | // Anhängen an die Datei | ||
| + | try (BufferedWriter writer = new BufferedWriter(new FileWriter(filePath, | ||
| + | writer.newLine(); | ||
| + | writer.write(" | ||
| + | writer.newLine(); | ||
| + | writer.write(" | ||
| + | System.out.println(" | ||
| + | } catch (IOException e) { | ||
| + | System.out.println(" | ||
| + | } | ||
| + | } | ||
| + | ... | ||
| + | ``` | ||
| + | --- | ||
| + | ## What about Scanner? | ||
| - Hauptsächliche Verwendung | - Hauptsächliche Verwendung | ||
| - Nicht nur Dateien lesen kann, sondern auch | - Nicht nur Dateien lesen kann, sondern auch | ||
| Line 206: | Line 233: | ||
| --- | --- | ||
| - | ### **Vergleich: Scanner vs BufferedReader vs FileReader** | + | ### Vergleich: Scanner vs BufferedReader vs FileReader |
| | **Kriterium** | | **Kriterium** | ||
| Line 217: | Line 244: | ||
| - | ### **Wann sollte man welchen verwenden?** | + | ### Wann sollte man welchen verwenden? |
| - `Scanner` | - `Scanner` | ||