<!DOCTYPE markdown>
InputStream und OutputStream und sind für Binärdaten wie Bilder oder Videos geeignet.Reader und Writer, speziell für Textdaten in Unicode.
import java.io.*Die java.io-Bibliothek
FileInputStream, FileOutputStream
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class StreamExample { public static void main(String[] args) { try (FileOutputStream fos = new FileOutputStream("binary.dat")) { fos.write(new byte[]{65, 66, 67}); // A, B, C } catch (IOException e) { e.printStackTrace(); } try (FileInputStream fis = new FileInputStream("binary.dat")) { int b; while ((b = fis.read()) != -1) { System.out.print((char) b); } } catch (IOException e) { e.printStackTrace(); } } }
FileReader/ FileWriterBufferedReader/ BufferedWriter
import java.io.FileReader; import java.io.IOException; public class FileReaderExample { public static void main(String[] args) { try (FileReader reader = new FileReader("example.txt")) { int ch; while ((ch = reader.read()) != -1) { // Zeichenweise lesen System.out.print((char) ch); } } catch (IOException e) { e.printStackTrace(); } } }
import java.io.FileWriter; import java.io.FileReader; import java.io.IOException; public class FileReaderWriterExample { public static void main(String[] args) { try (FileWriter writer = new FileWriter("example.txt")) { writer.write("Hallo, Java IO!"); } catch (IOException e) { e.printStackTrace(); } try (FileReader reader = new FileReader("example.txt")) { int ch; while ((ch = reader.read()) != -1) { System.out.print((char) ch); } } catch (IOException e) { e.printStackTrace(); } } }
import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class BufferedReaderExample { public static void main(String[] args) { try (BufferedReader reader = new BufferedReader(new FileReader("example.txt"))) { String line; while ((line = reader.readLine()) != null) { // Zeilenweise lesen System.out.println(line); } } catch (IOException e) { e.printStackTrace(); } } }
import java.io.*; public class BufferedReaderWriterExample { public static void main(String[] args) { try (BufferedWriter writer = new BufferedWriter(new FileWriter("example.txt"))) { writer.write("Effizientes Schreiben mit BufferedWriter!"); } catch (IOException e) { e.printStackTrace(); } try (BufferedReader reader = new BufferedReader(new FileReader("example.txt"))) { String line; while ((line = reader.readLine()) != null) { System.out.println(line); } } catch (IOException e) { e.printStackTrace(); } } }
FileReaderBufferedReaderIOException für robusteren Code.
...
public static void main(String[] args) {
String filePath = "example.txt";
// Schreiben in die Datei (überschreibt den bestehenden Inhalt)
try (BufferedWriter writer = new BufferedWriter(new FileWriter(filePath))) {
writer.write("Dies ist der erste Text in der Datei.");
writer.newLine(); // Neue Zeile einfügen
writer.write("Noch eine Zeile wird hinzugefügt.");
System.out.println("Text erfolgreich geschrieben.");
} catch (IOException e) {
System.out.println("Fehler beim Schreiben in die Datei: " + e.getMessage());
}
// Anhängen an die Datei
try (BufferedWriter writer = new BufferedWriter(new FileWriter(filePath, true))) {
writer.newLine(); // Neue Zeile am Ende der Datei
writer.write("Dies ist ein angehängter Text.");
writer.newLine(); // Neue Zeile einfügen
writer.write("Noch ein angehängter Text.");
System.out.println("Text erfolgreich angehängt.");
} catch (IOException e) {
System.out.println("Fehler beim Anhängen an die Datei: " + e.getMessage());
}
}
...
| Kriterium | FileReader | BufferedReader | Scanner |
|---|---|---|---|
| Hauptzweck | Zeichenweise aus Dateien lesen. | Effizientes Lesen von Zeichen und Zeilen. | Lesen und Parsen von Eingaben, z. B. Zahlen oder Strings. |
| Lesemethoden | read() (Zeichenweise). | readLine() (Zeilenweise) oder read(). | Methoden wie nextInt(), nextLine(), next(). |
| Performance | Langsam für große Dateien. | Schnell für große Dateien. | Langsamer bei großen Datenmengen (Parsing braucht Zeit). |
ScannerBufferedReaderFileReader