Java InputStream (mit Beispiel)

In diesem Tutorial lernen wir anhand eines Beispiels die Java InputStream-Klasse und ihre Methoden kennen.

Die InputStreamKlasse des java.ioPakets ist eine abstrakte Oberklasse, die einen Eingabestrom von Bytes darstellt.

Da InputStreames 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.InputStreamzuerst 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 InputStreames 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 InputStreamKlasse bietet verschiedene Methoden, die von ihren Unterklassen implementiert werden. Hier sind einige der am häufigsten verwendeten Methoden:

  • read() - liest ein Datenbyte aus dem Eingabestream
  • read(byte() array) - liest Bytes aus dem Stream und speichert sie im angegebenen Array
  • available() - Gibt die Anzahl der im Eingabestream verfügbaren Bytes zurück
  • mark() - markiert die Position im Eingabestream, bis zu der Daten gelesen wurden
  • reset() - bringt das Steuerelement an den Punkt im Stream zurück, an dem die Markierung gesetzt wurde
  • markSupported()- prüft , ob das mark()und reset()Verfahren wird im Stream unterstützt
  • skips() - überspringt und verwirft die angegebene Anzahl von Bytes aus dem Eingabestream
  • close() - schließt den Eingabestream

Beispiel: InputStream mit FileInputStream

So können wir InputStreammithilfe der FileInputStreamKlasse 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 FileInputStreamKlasse 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).

Interessante Beiträge...