Java FileInputStream meistern: Praktischer Leitfaden mit Code-Beispielen
Java FileInputStream Klasse
Dieses Tutorial führt Sie durch Javas FileInputStream, deckt Kernmethoden, praktische Nutzung und reale Beispiele ab.
Die FileInputStream Klasse, Teil des java.io Pakets, ermöglicht das Lesen von rohen Byte-Daten aus Dateien. Sie erweitert die abstrakte InputStream Klasse und bietet eine konkrete Implementierung für Datei-I/O.
Bevor Sie in FileInputStream eintauchen, stellen Sie sicher, dass Sie mit den Grundlagen des Java Datei-Handlings vertraut sind.
FileInputStream erstellen
Importieren Sie die Klasse und instanziieren Sie sie entweder mit einem Dateipfad oder einem File Objekt.
1. Mit Dateipfad
FileInputStream input = new FileInputStream("pfad/zur/datei.txt");
Dies öffnet einen Stream, der an die Datei am angegebenen Pfad gebunden ist.
2. Mit File Objekt
File file = new File("datei.txt");
FileInputStream input = new FileInputStream(file);
Wichtige Methoden von FileInputStream
Die Klasse implementiert alle abstrakten Methoden von InputStream und fügt einige eigene hinzu. Hier sind die am häufigsten verwendeten.
read()
int read()– liest ein einzelnes Byte und gibt es alsintzurück (oder-1bei EOF).int read(byte[] b)– füllt das übergebene Array mit Bytes.int read(byte[] b, int off, int len)– liest bis zulenBytes inbab Offsetoff.
Beispiel: Textdatei Byte-für-Byte lesen.
import java.io.FileInputStream;
public class Main {
public static void main(String[] args) {
try (FileInputStream input = new FileInputStream("input.txt")) {
System.out.println("Daten in der Datei:");
int byteRead;
while ((byteRead = input.read()) != -1) {
System.out.print((char) byteRead);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
Ausgabe
Daten in der Datei: This is a line of text inside the file.
available()
Gibt die Anzahl der Bytes zurück, die ohne Blockieren gelesen werden können.
try (FileInputStream input = new FileInputStream("input.txt")) {
System.out.println("Verfügbar am Anfang: " + input.available());
input.read();
input.read();
input.read();
System.out.println("Verfügbar nach 3 reads: " + input.available());
}
Ausgabe
Verfügbar am Anfang: 39 Verfügbar nach 3 reads: 36
skip()
Verschiebt die Stream-Position um eine angegebene Anzahl Bytes und verwirft diese.
try (FileInputStream input = new FileInputStream("input.txt")) {
input.skip(5); // überspringt "This "
int byteRead;
while ((byteRead = input.read()) != -1) {
System.out.print((char) byteRead);
}
}
Ausgabe
is a line of text inside the file.
close()
Schließt den Stream und gibt Systemressourcen frei. Die Verwendung eines try-with-resources Blocks (wie oben gezeigt) stellt sicher, dass close() automatisch aufgerufen wird.
Weitere FileInputStream Methoden
| Methode | Beschreibung |
|---|---|
finalize() | Stellt sicher, dass close() vor Garbage Collection aufgerufen wird. |
getChannel() | Gibt den FileChannel zurück, der mit dem Stream verknüpft ist. |
getFD() | Stellt den zugrundeliegenden File Descriptor bereit. |
mark(int readlimit) | Markiert die aktuelle Position für späteren Reset. |
reset() | Setzt den Stream auf die letzte markierte Position zurück. |
Für tiefere Einblicke konsultieren Sie die offizielle Java-Dokumentation: Java FileInputStream (offizielle Java-Dokumentation).
Java
- Javas final-Schlüsselwort verstehen: Variablen, Methoden und Klassen
- Java instanceof-Operator: Ein umfassender Leitfaden
- Java statische verschachtelte Klassen verstehen: Nutzung, Unterschiede und Beispiele
- Java anonyme innere Klassen meistern: Definition, Syntax und praktische Beispiele
- Java Singleton-Pattern erklärt: Sichere Implementierung und Verwendung
- Java Reflection meistern: Klassen, Methoden und Felder zur Laufzeit inspizieren
- Java ObjectOutputStream meistern: Serialisierung, Methoden und praktische Beispiele
- Java BufferedReader meistern: Effizientes Character-Stream-Handling
- Java Scanner meistern: Umfassender Leitfaden mit praktischen Beispielen
- Java Generics meistern – Wiederverwendbaren, typsicheren Code erstellen