In diesem Tutorial lernen wir anhand eines Beispiels die Java InputStream-Klasse und ihre Methoden kennen.
Die InputStream
Klasse des java.io
Pakets ist eine abstrakte Oberklasse, die einen Eingabestrom von Bytes darstellt.
Da InputStream
es sich um eine abstrakte Klasse handelt, ist sie für sich genommen nicht nützlich. Seine Unterklassen können jedoch zum Lesen von Daten verwendet werden.
Unterklassen von InputStream
Um die Funktionalität von zu nutzen InputStream
, können wir seine Unterklassen verwenden. Einige von ihnen sind:
- FileInputStream
- ByteArrayInputStream
- ObjectInputStream
Wir werden im nächsten Tutorial mehr über all diese Unterklassen erfahren.
Erstellen Sie einen InputStream
Um einen InputStream zu erstellen, müssen wir java.io.InputStream
zuerst das Paket importieren . Sobald wir das Paket importiert haben, können wir den Eingabestream wie folgt erstellen.
// Creates an InputStream InputStream object1 = new FileInputStream();
Hier haben wir mit einen Eingabestream erstellt FileInputStream
. Es ist, weil InputStream
es eine abstrakte Klasse ist. Daher können wir kein Objekt von erstellen InputStream
.
Hinweis : Wir können auch einen Eingabestream aus anderen Unterklassen von erstellen InputStream
.
Methoden von InputStream
Die InputStream
Klasse bietet verschiedene Methoden, die von ihren Unterklassen implementiert werden. Hier sind einige der am häufigsten verwendeten Methoden:
read()
- liest ein Datenbyte aus dem Eingabestreamread(byte() array)
- liest Bytes aus dem Stream und speichert sie im angegebenen Arrayavailable()
- Gibt die Anzahl der im Eingabestream verfügbaren Bytes zurückmark()
- markiert die Position im Eingabestream, bis zu der Daten gelesen wurdenreset()
- bringt das Steuerelement an den Punkt im Stream zurück, an dem die Markierung gesetzt wurdemarkSupported()
- prüft , ob dasmark()
undreset()
Verfahren wird im Stream unterstütztskips()
- überspringt und verwirft die angegebene Anzahl von Bytes aus dem Eingabestreamclose()
- schließt den Eingabestream
Beispiel: InputStream mit FileInputStream
So können wir InputStream
mithilfe der FileInputStream
Klasse implementieren .
Angenommen, wir haben eine Datei mit dem Namen input.txt mit dem folgenden Inhalt.
This is a line of text inside the file.
Versuchen wir, diese Datei mit FileInputStream
(einer Unterklasse von InputStream
) zu lesen .
import java.io.FileInputStream; import java.io.InputStream; public class Main ( public static void main(String args()) ( byte() array = new byte(100); try ( InputStream input = new FileInputStream("input.txt"); System.out.println("Available bytes in the file: " + input.available()); // Read byte from the input stream input.read(array); System.out.println("Data read from the file: "); // Convert byte array into string String data = new String(array); System.out.println(data); // Close the input stream input.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )
Ausgabe
Available bytes in the file: 35 Data read from the file: This is a line of text inside the file
Im obigen Beispiel haben wir mit der FileInputStream
Klasse einen Eingabestream erstellt . Der Eingabestream ist mit der Datei input.txt verknüpft .
InputStream input = new FileInputStream("input.txt");
Um Daten aus der Datei input.txt zu lesen , haben wir diese beiden Methoden implementiert.
input.read(array); // to read data from the input stream input.close(); // to close the input stream
Weitere Informationen finden Sie unter Java InputStream (offizielle Java-Dokumentation).