Java InputStream Klasse – Kernmethoden & praktisches Beispiel
Java InputStream Klasse
Dieses Tutorial entmystifiziert Javas InputStream Klasse, beschreibt ihre primären Methoden, wichtigsten Unterklassen und ein praxisnahes Beispiel mit FileInputStream.
Im Paket java.io ist InputStream eine abstrakte Superklasse, die einen byte-orientierten Eingabestream repräsentiert. Obwohl Sie sie nicht direkt instanziieren können, bieten ihre konkreten Unterklassen leistungsstarke Mechanismen zum Lesen von Daten aus Dateien, Byte-Arrays und anderen Quellen.
Wichtige Unterklassen von InputStream
Die praktische Nutzung von InputStream basiert auf seinen Unterklassen. Die gängigsten sind:
FileInputStream– liest Bytes von einer Datei auf der FestplatteByteArrayInputStream– liest Bytes aus einem Byte-Array im SpeicherObjectInputStream– deserialisiert Objekte aus einem Eingabestream
Wir werden jede Unterklasse in eigenen Tutorials untersuchen, aber konzentrieren wir uns jetzt auf FileInputStream.
Einen InputStream erstellen
Um einen InputStream zu erstellen, importieren Sie zuerst die Klasse:
import java.io.InputStream;
Da InputStream abstrakt ist, instanziieren Sie eine seiner Unterklassen, zum Beispiel:
InputStream stream = new FileInputStream("beispiel.txt");
Beachten Sie, dass Sie FileInputStream durch jede andere konkrete Unterklasse ersetzen können.
Kernmethoden von InputStream
Die folgenden Methoden sind in allen InputStream Implementierungen gemeinsam:
int read()– liest ein einzelnes Byte und gibt es alsintzurück oder-1, wenn das Ende des Streams erreicht ist.int read(byte[] b)– füllt das übergebene Byte-Array mit Daten und gibt die Anzahl der gelesenen Bytes zurück.int available()– meldet die Anzahl der Bytes, die ohne Blockieren gelesen werden können.void mark(int readlimit)– markiert die aktuelle Position im Stream für einen späteren Reset.void reset()– setzt den Stream auf die letzte Markierung zurück.boolean markSupported()– gibt an, obmarkundresetunterstützt werden.long skip(long n)– überspringtnBytes der Eingabe.void close()– schließt den Stream und gibt Systemressourcen frei.
Praxisbeispiel: Datei mit FileInputStream lesen
Angenommen, wir haben eine Textdatei namens input.txt mit folgendem Inhalt:
This is a line of text inside the file.
Unten ist ein vollständiges Java-Programm, das die Datei öffnet, die Anzahl der verfügbaren Bytes meldet, den Inhalt in ein Byte-Array liest und das Ergebnis ausgibt.
import java.io.FileInputStream;
import java.io.InputStream;
public class Main {
public static void main(String[] args) {
byte[] buffer = new byte[100];
try (InputStream input = new FileInputStream("input.txt")) {
System.out.println("Verfügbare Bytes: " + input.available());
int bytesRead = input.read(buffer);
System.out.println("Gelesene Bytes: " + bytesRead);
String data = new String(buffer, 0, bytesRead);
System.out.println("Aus der Datei gelesene Daten:");
System.out.println(data);
} catch (Exception e) {
e.printStackTrace();
}
}
}
Ausgabe
Verfügbare Bytes: 39
Gelesene Bytes: 39
Aus der Datei gelesene Daten:
This is a line of text inside the file.
Dieses Beispiel demonstriert, wie man mit FileInputStream in einem try-with-resources Block arbeitet, der sicherstellt, dass der Stream auch bei Ausnahmen automatisch geschlossen wird.
Für einen tieferen Einblick in die API, siehe die offizielle Java-Dokumentation: InputStream Javadoc.
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 Scanner meistern: Umfassender Leitfaden mit praktischen Beispielen
- Java Generics meistern – Wiederverwendbaren, typsicheren Code erstellen
- Java-Dateioperationen mit java.io meistern – Erstellen, Lesen, Schreiben & Löschen