English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java Grund教程

Java-Flusskontrolle

Java Array

Java objektorientiert(I)

Java objektorientiert(II)

Java objektorientiert(III)

Java Ausnahmebehandlung

Java Liste(List)

Java Queue(Stapel)

Java Map-Kollektion

Java Set-Kollektion

Java Ein- und Ausgabestrom(I/)

Java Reader/Writer

Andere Themen von Java

Java FileInputStream Klasse

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).

Erstelle einen FileInputStream

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.

Methoden von FileInputStream

Die FileInputStream-Klasse bietet verschiedene Methoden zur Implementierung der InputStream-Klasse.

read() Methode

  • 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.

available() Methode

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

  1. Wir überprüfen zunächst mit dem available() Methode die verfügbaren Bytes im Datei-Eingabestrom.

  2. Dann haben wir mit dem read() Methode verwendet3mal vom Datei-Eingabestrom gelesen3Bytes verringert.

  3. 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.

skip() Methode

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.

close() Methode

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.

Andere Methoden von FileInputStream

MethodeInhaltsbeschreibung
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