Java FileInputStream (mit Beispielen)

In diesem Tutorial lernen wir anhand von Beispielen Java FileInputStream und seine Methoden kennen.

Die FileInputStreamKlasse des java.ioPakets kann zum Lesen von Daten (in Bytes) aus Dateien verwendet werden.

Es erweitert die InputStreamabstrakte Klasse.

Bevor wir etwas darüber erfahren FileInputStream, sollten Sie sich mit Java-Dateien vertraut machen.

Erstellen Sie einen FileInputStream

Um einen Dateieingabestream zu erstellen, müssen wir java.io.FileInputStreamzuerst das Paket importieren . Sobald wir das Paket importiert haben, können wir wie folgt einen Dateieingabestream in Java erstellen.

1. Verwenden Sie den Pfad zur Datei

 FileInputStream input = new FileInputStream(stringPath); 

Hier haben wir einen Eingabestream erstellt, der mit der durch den Pfad angegebenen Datei verknüpft wird.

2. Verwenden eines Objekts der Datei

 FileInputStream input = new FileInputStream(File fileObject); 

Hier haben wir einen Eingabestream erstellt, der mit der von angegebenen Datei verknüpft wird fileObject.

Methoden von FileInputStream

Die FileInputStreamKlasse bietet Implementierungen für verschiedene in der InputStreamKlasse vorhandene Methoden .

read () Methode

  • read() - liest ein einzelnes Byte aus der Datei
  • read(byte() array) - liest die Bytes aus der Datei und speichert sie im angegebenen Array
  • read(byte() array, int start, int length) - liest die Anzahl der Bytes, die der Länge entsprechen, aus der Datei und speichert sie ab dem Positionsstart im angegebenen Array

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 zu lesen FileInputStream.

 import java.io.FileInputStream; public class Main ( public static void main(String args()) ( try ( FileInputStream input = new FileInputStream("input.txt"); System.out.println("Data in the file: "); // Reads the first byte int i = input.read(); while(i != -1) ( System.out.print((char)i); // Reads next byte from the file i = input.read(); ) input.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) ) 

Ausgabe

 Daten in der Datei: Dies ist eine Textzeile in der Datei. 

Im obigen Beispiel haben wir einen Dateieingabestream mit dem Namen input erstellt. Der Eingabestream ist mit der Datei input.txt verknüpft .

 FileInputStream input = new FileInputStream("input.txt"); 

Um Daten aus der Datei zu lesen, haben wir die read()Methode in der while-Schleife verwendet.

verfügbare () Methode

Um die Anzahl der verfügbaren Bytes zu ermitteln, können wir die available()Methode verwenden. Beispielsweise,

 import java.io.FileInputStream; public class Main ( public static void main(String args()) ( try ( // Suppose, the input.txt file contains the following text // This is a line of text inside the file. FileInputStream input = new FileInputStream("input.txt"); // Returns the number of available bytes System.out.println("Available bytes at the beginning: " + input.available()); // Reads 3 bytes from the file input.read(); input.read(); input.read(); // Returns the number of available bytes System.out.println("Available bytes at the end: " + input.available()); input.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) ) 

Ausgabe

 Verfügbare Bytes am Anfang: 39 Verfügbare Bytes am Ende: 36 

Im obigen Beispiel ist

  1. Wir verwenden zuerst die available()Methode, um die Anzahl der verfügbaren Bytes im Dateieingabestream zu überprüfen.
  2. Wir haben die read()Methode dann dreimal verwendet, um 3 Bytes aus dem Dateieingabestream zu lesen.
  3. Nachdem wir die Bytes gelesen haben, haben wir die verfügbaren Bytes erneut überprüft. Diesmal verringerten sich die verfügbaren Bytes um 3.

skip () Methode

Um die angegebene Anzahl von Bytes zu verwerfen und zu überspringen, können wir die skip()Methode verwenden. Beispielsweise,

 import java.io.FileInputStream; public class Main ( public static void main(String args()) ( try ( // Suppose, the input.txt file contains the following text // This is a line of text inside the file. FileInputStream input = new FileInputStream("input.txt"); // Skips the 5 bytes input.skip(5); System.out.println("Input stream after skipping 5 bytes:"); // Reads the first byte int i = input.read(); while (i != -1) ( System.out.print((char) i); // Reads next byte from the file i = input.read(); ) // close() method input.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) ) 

Ausgabe

 Eingabestream nach dem Überspringen von 5 Bytes: ist eine Textzeile in der Datei. 

Im obigen Beispiel haben wir die skip()Methode verwendet, um 5 Byte Daten aus dem Dateieingabestream zu überspringen. Daher werden die Bytes, die den Text "This" darstellen, nicht aus dem Eingabestream gelesen.

close () Methode

Um den Dateieingabestream zu schließen, können wir die close()Methode verwenden. Sobald die close()Methode aufgerufen wurde, können wir den Eingabestream nicht mehr zum Lesen von Daten verwenden.

In allen obigen Beispielen haben wir die close()Methode verwendet, um den Dateieingabestream zu schließen.

Andere Methoden von FileInputStream

Methoden Beschreibungen
finalize() stellt sicher, dass die close()Methode aufgerufen wird
getChannel() Gibt das Objekt zurück, das FileChanneldem Eingabestream zugeordnet ist
getFD() Gibt den dem Eingabestream zugeordneten Dateideskriptor zurück
mark() Markieren Sie die Position im Eingabestream, bis zu der Daten gelesen wurden
reset() Bringt das Steuerelement an den Punkt im Eingabestream zurück, an dem die Markierung gesetzt wurde

Weitere Informationen finden Sie unter Java FileInputStream (offizielle Java-Dokumentation).

Interessante Beiträge...