Java FileInputStream-Klasse
Java FileInputStream-Klasse
In diesem Tutorial lernen wir Java FileInputStream und seine Methoden anhand von Beispielen kennen.
Der FileInputStream
Klasse der java.io
Paket kann verwendet werden, um Daten (in Bytes) aus Dateien zu lesen.
Es erweitert die InputStream
abstrakte Klasse.
Bevor wir etwas über FileInputStream
erfahren , informieren Sie sich unbedingt über Java-Dateien.
Einen FileInputStream erstellen
Um einen Dateieingabestream zu erstellen, müssen wir den java.io.FileInputStream
importieren Paket zuerst. Sobald wir das Paket importiert haben, können wir wie folgt einen Dateieingabestrom in Java erstellen.
1. Verwenden des Pfads zur Datei
FileInputStream input = new FileInputStream(stringPath);
Hier haben wir einen Eingabestrom erstellt, der mit der durch den Pfad angegebenen Datei verknüpft wird .
2. Verwendung eines Objekts der Datei
FileInputStream input = new FileInputStream(File fileObject);
Hier haben wir einen Eingabestrom erstellt, der mit der durch fileObject
angegebenen Datei verknüpft wird .
Methoden von FileInputStream
Die FileInputStream
-Klasse bietet Implementierungen für verschiedene Methoden, die in InputStream
vorhanden sind Klasse.
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 gleich length aus der Datei und speichert im angegebenen Array ab der Position start
Angenommen, wir haben eine Datei namens input.txt mit folgendem Inhalt.
This is a line of text inside the file.
Versuchen wir, diese 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("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
Data in the file: This is a line of text inside the file.
Im obigen Beispiel haben wir einen Dateieingabestrom namens input erstellt . Der Eingabestrom wird mit der input.txt verknüpft Datei.
FileInputStream input = new FileInputStream("input.txt");
Um Daten aus der Datei auszulesen, haben wir den read()
verwendet Methode innerhalb der While-Schleife.
available()-Methode
Um die Anzahl der verfügbaren Bytes zu erhalten, können wir den available()
verwenden Methode. Zum Beispiel
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
Available bytes at the beginning: 39 Available bytes at the end: 36
Im obigen Beispiel
- Wir verwenden zuerst den
available()
Methode, um die Anzahl der verfügbaren Bytes im Dateieingabestrom zu prüfen. - Wir haben dann den
read()
verwendet Methode dreimal, um 3 Bytes aus dem Dateieingabestrom zu lesen. - Nun, nach dem Lesen der Bytes haben wir noch einmal die verfügbaren Bytes ü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 den skip()
verwenden Methode. Zum Beispiel
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
Input Stream after skipping 5 bytes: is a line of text inside the file.
Im obigen Beispiel haben wir den skip()
verwendet Methode zum Überspringen von 5 Datenbytes aus dem Dateieingabestream. Daher repräsentieren die Bytes den Text "This" wird nicht aus dem Eingabestrom gelesen.
close()-Methode
Um den Dateieingabestrom zu schließen, können wir den close()
verwenden Methode. Einmal die close()
-Methode aufgerufen wird, können wir den Eingabestrom nicht zum Lesen von Daten verwenden.
In allen obigen Beispielen haben wir den close()
verwendet Methode zum Schließen des Dateieingabestreams.
Andere Methoden von FileInputStream
Methoden | Beschreibungen |
---|---|
finalize() | stellt sicher, dass der close() Methode heißt |
getChannel() | gibt das Objekt von FileChannel zurück dem Eingabestrom zugeordnet |
getFD() | gibt den mit dem Eingabestrom verknüpften Dateideskriptor zurück |
mark() | Markieren Sie die Position im Eingabestrom, bis zu der Daten gelesen wurden |
reset() | gibt die Kontrolle an den Punkt im Eingabestrom zurück, an dem die Markierung gesetzt wurde |
Um mehr zu erfahren, besuchen Sie Java FileInputStream (offizielle Java-Dokumentation).
Java