Wie funktioniert der Java InputStream?

Wie Funktioniert Der Java Inputstream



Java ermöglicht den Entwicklern, mit den Dateien zu arbeiten. In einem solchen Fall ist die „ Eingabestrom ”-Klasse in Kraft tritt, die beim Lesen des angegebenen Dateiinhalts und bei der Analyse der enthaltenen Bytes hilft. Dies führt dazu, dass Speicherprobleme bewältigt werden und der ausgewählte Dateiinhalt entsprechend den Anforderungen effizient zurückgegeben wird.

In diesem Artikel wird die Funktionsweise des „InputStream“ in Java näher erläutert.







Wie funktioniert der Java InputStream?

Die „InputStream“-Klasse des „ java.io Das Paket entspricht einer abstrakten Oberklasse, die einen Eingabestream aus Bytes für die angegebene Datei zurückgibt.



Unterklassen von InputStream

Zur Anwendung der „InputStream“-Funktionalitäten können die folgenden Unterklassen genutzt werden:



    • FileInputStream
    • ObjectInputStream
    • ByteArrayInputStream

Es ist so, dass diese Unterklassen die Klasse „InputStream“ erweitern.





Methoden von InputStream

Die Klasse „InputStream“ enthält verschiedene Methoden, die von ihren Unterklassen angewendet werden. Im Folgenden sind einige der am häufigsten verwendeten Methoden aufgeführt:

Methoden Funktionalität
lesen() Es liest ein Datenbyte aus dem Eingabestream.



read(byte[] array) Außerdem liest es Bytes aus dem Stream und speichert sie im Zielarray.

überspringen() Diese Methode überspringt/lässt die spezifische Anzahl von Bytes aus dem Eingabestream aus.

verfügbar() Es gibt die im Eingabestream enthaltenen Bytes an.
zurücksetzen() Es ermöglicht den Zugriff auf den Stream-Punkt, an dem die Markierung gesetzt wurde.

markieren() Diese Methode markiert die Position im Stream, bis zu der Daten gelesen wurden.

markSupported() Es analysiert, ob die Methoden „mark()“ und „reset()“ im Stream unterstützt/kompatibel sind.


Bevor Sie mit dem Beispiel fortfahren, importieren Sie die folgenden Pakete, um mit „InputStream“ und seiner Unterklasse zu arbeiten:

import java.io.FileInputStream;
import java.io.InputStream;


Beispiel: Funktionsweise von InputStream in Java

Dieses Beispiel veranschaulicht die Funktionsweise des „InputStream“, indem der Dateiinhalt über die „InputStream“-Methoden gelesen wird:

öffentliche Klasse Inputstream {
Public static void Main ( String-Argumente [ ] ) {
Byte [ ] gegebenarray = neues Byte [ fünfzig ] ;
versuchen {
InputStream readData = neuer FileInputStream ( „readfile.txt“ ) ;
System.out.println ( „Bytes in der Datei ->“ + readData.available ( ) ) ;
readData.read ( gegebenarray ) ;
System.out.println ( „Dateidaten lesen:“ ) ;
String enthält Daten = neuer String ( gegebenarray ) ;
System.out.println ( Daten enthalten ) ;
readData.close ( ) ;
}
fangen ( Ausnahme außer ) {
außer.getStackTrace ( ) ;
}
} }


Führen Sie gemäß den obigen Codezeilen die folgenden Schritte aus:

    • Erstellen Sie zunächst ein „Byte“-Array, das maximal „ fünfzig ” Bytewerte in der gelesenen Datei.
    • Erstellen Sie im nächsten Schritt ein „ Eingabestrom ” mit „FileInputStream“ und geben Sie die verfügbaren Bytes in der angegebenen Datei über das zugehörige „ zurück verfügbar() ' Methode.
    • Lesen Sie anschließend die Bytes aus dem Eingabestream mit dem Befehl „ lesen() ' Methode.
    • Konvertieren Sie nun das Byte-Array in einen String und zeigen Sie den Dateiinhalt an.
    • Schließen Sie abschließend die gelesene Datei mit dem zugehörigen „ schließen() ' Methode.

Ausgang


In diesem Ergebnis kann impliziert werden, dass die Anzahl der Bytes in der Datei, d. h. der durch den Inhalt akkumulierte Speicherplatz, gemäß dem maximalen Bereich im Byte-Array, d. h. „50“, zurückgegeben wird. Außerdem wird der Dateiinhalt entsprechend zurückgegeben.

Dateiinhalt


Um einen Überblick über die „ überspringen() ' Und ' zurücksetzen() ”-Methoden, betrachten Sie die folgende Demonstration:


In dieser Abbildung überspringt die Methode „skip()“ die angegebene Anzahl von Bytes, d. h. „ 5 -> Java ” aus dem Dateiinhalt von Anfang an. Die Methode „reset()“ setzt den Stream jedoch zurück.

Abschluss

Der ' Eingabestrom ” Klasse der „ java.io „Paket ist eine abstrakte Superklasse, die einem Eingabestrom von Bytes entspricht, der zum Lesen der Dateidaten verwendet wird. Diese Klasse umfasst verschiedene Methoden, die die Lesemethoden der Datei entsprechend den Anforderungen effektiv unterstützen. Dieser Blog demonstrierte den Zweck und die Funktionsweise von „InputStream“ in Java.