In diesem Tutorial lernen wir anhand von Beispielen Java FileInputStream und seine Methoden kennen.
Die FileInputStream
Klasse des java.io
Pakets kann zum Lesen von Daten (in Bytes) aus Dateien verwendet werden.
Es erweitert die InputStream
abstrakte 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.FileInputStream
zuerst 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 FileInputStream
Klasse bietet Implementierungen für verschiedene in der InputStream
Klasse vorhandene Methoden .
read () Methode
read()
- liest ein einzelnes Byte aus der Dateiread(byte() array)
- liest die Bytes aus der Datei und speichert sie im angegebenen Arrayread(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
- Wir verwenden zuerst die
available()
Methode, um die Anzahl der verfügbaren Bytes im Dateieingabestream zu überprüfen. - Wir haben die
read()
Methode dann dreimal verwendet, um 3 Bytes aus dem Dateieingabestream zu lesen. - 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 FileChannel dem 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).