English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In diesem Tutorial lernen wir mit Beispielen Java FileInputStream und seine Methoden kennen.
Die Klasse FileInputStream aus dem java.io-Paket kann verwendet werden, um Daten aus einer Datei zu lesen (in Bytes).
es vererbt von der abstrakten Klasse InputStream.
Bevor Sie FileInputStream lernen, stellen Sie sicher, dass SieJava File(Ordner).
Um einen FileInputStream zu erstellen, müssen wir zunächst das Paket java.io.FileInputStream importieren. Nach dem Importieren des Pakets können wir mit Java einen Dateieingabestrom erstellen.
1Verwende den Dateipfad
FileInputStream input = new FileInputStream(stringPath);
Hier erstellen wir einen Eingabestrom, der mit dem angegebenen Dateipfad verbunden wird.
2Verwende das Dateiobjekt
FileInputStream input = new FileInputStream(File fileObject);
Hier erstellen wir einen Eingabestrom, der mit der durch fileObject angegebenen Datei verbunden wird.
Die FileInputStream-Klasse bietet verschiedene Methoden zur Implementierung der InputStream-Klasse.
read() - Lese ein Byte aus der Datei
read(byte[] array) - Lese Bytes aus der Datei und speichere sie im angegebenen Array
read(byte[] array, int start, int length) - Lese die Anzahl der Bytes, die gleich length sind, aus der Datei und speichere sie ab Position start im angegebenen Array
Angenommen, wir haben eine Datei namensinput.txtDatei, die den folgenden Inhalt enthält.
Dies ist ein Textzeile innerhalb der Datei.
Lassen Sie uns versuchen, die Datei mit FileInputStream zu lesen.
import java.io.FileInputStream; public class Main { public static void main(String args[]) { try { FileInputStream input = new FileInputStream("input.txt"); System.out.println("Dateiinhalt:"); //Das erste Byte lesen int i = input.read(); while(i != -1) { System.out.print((char)i); //Den nächsten Byte aus der Datei lesen int i = input.read(); } input.close(); } catch(Exception e) { e.getStackTrace(); } } }
Ausgaberesultat
Daten in der Datei: Dies ist ein Textzeile innerhalb der Datei.
Im obigen Beispiel haben wir einen Datei-Eingabestrom mit dem Namen input erstellt. Der Eingabestrom ist mitinput.txtDatei-Verknüpfung.
FileInputStream input = new FileInputStream("input.txt");
Um Daten aus der Datei zu lesen, haben wir im While-Schleif read() Methode verwendet.
Um die verfügbaren Bytes zu erhalten, können wir die Methode available() verwenden. Zum Beispiel
import java.io.FileInputStream; public class Main { public static void main(String args[]) { try { //Angenommen, die Datei input.txt enthält folgenden Text //Dies ist ein Zeilen-text in der Datei. FileInputStream input = new FileInputStream("input.txt"); //Verfügbare Bytes zurückgeben System.out.println("Verfügbare Bytes am Anfang:"); + input.available()); //Aus der Datei lesen3Bytes input.read(); input.read(); input.read(); //Verfügbare Bytes zurückgeben System.out.println("Verfügbare Bytes am Ende:"); + input.available()); input.close(); } catch (Exception e) { e.getStackTrace(); } } }
Ausgaberesultat
Verfügbare Bytes am Anfang: 39 Verfügbare Bytes am Ende: 36
In diesem Beispiel
Wir überprüfen zunächst mit dem available() Methode die verfügbaren Bytes im Datei-Eingabestrom.
Dann haben wir mit dem read() Methode verwendet3mal vom Datei-Eingabestrom gelesen3Bytes verringert.
Nun haben wir nach dem Lesen der Bytes noch einmal die verfügbaren Bytes überprüft. Diesmal hat sich die Anzahl der verfügbaren Bytes um3.
Um bestimmte Bytes zu verwerfen und zu überspringen, kann die Methode skip() verwendet werden. Zum Beispiel
import java.io.FileInputStream; public class Main { public static void main(String args[]) { try { //Angenommen, die Datei input.txt enthält folgenden Text //Dies ist ein Zeilen-text in der Datei. FileInputStream input = new FileInputStream("input.txt"); //überspringen5Bytes input.skip(5; System.out.println("Der Eingabestrom wird übersprungen:");5Bytes:"); //Das erste Byte lesen int i = input.read(); while (i != -1) { System.out.print((char) i); //Den nächsten Byte aus der Datei lesen int i = input.read(); } // close() Methode input.close(); } catch (Exception e) { e.getStackTrace(); } } }
Ausgaberesultat
Eingabestrom überspringen5Bytes: is a line of text inside the file.
In den obigen Beispielen haben wir die Methode skip() verwendet, um den Dateieingabestrom zu überspringen5Bytes Daten. Daher wird keine Textdarstellung aus dem Eingabestrom gelesen“This”der Bytes.
Um den Dateieingabestrom zu schließen, können Sie die Methode close() verwenden. Sobald die Methode close() aufgerufen wird, können wir den Eingabestrom nicht mehr zum Lesen von Daten verwenden.
In allen obigen Beispielen haben wir die Methode close() verwendet, um den Dateieingabestrom zu schließen.
Methode | Inhaltsbeschreibung |
---|---|
finalize() | Stellen Sie sicher, dass die Methode close() aufgerufen wird |
getChannel() | Das Objekt FileChannel, das mit dem Eingabestrom verbunden ist, zurückgeben |
getFD() | Den Dateideskriptor, der mit dem Eingabestrom verbunden ist, zurückgeben |
mark() | Den Standort der gelesenen Daten im Eingabestrom markieren |
reset() | Den Kontroller in den markierten Punkt des Eingabestroms zurückzusetzen |