Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Java

Java FileInputStream-klasse

Java FileInputStream-klasse

In deze zelfstudie leren we over Java FileInputStream en zijn methoden aan de hand van voorbeelden.

De FileInputStream klasse van de java.io pakket kan worden gebruikt om gegevens (in bytes) uit bestanden te lezen.

Het verlengt de InputStream abstracte klas.

Voordat we meer te weten komen over FileInputStream , zorg ervoor dat u op de hoogte bent van Java-bestanden.


Maak een FileInputStream

Om een ​​bestandsinvoerstroom te maken, moeten we de java.io.FileInputStream . importeren pakket eerst. Zodra we het pakket hebben geïmporteerd, kunnen we als volgt een bestandsinvoerstroom in Java maken.

1. Het pad naar het bestand gebruiken

FileInputStream input = new FileInputStream(stringPath);

Hier hebben we een invoerstroom gemaakt die wordt gekoppeld aan het bestand dat is opgegeven door het pad .

2. Een object van het bestand gebruiken

FileInputStream input = new FileInputStream(File fileObject);

Hier hebben we een invoerstroom gemaakt die wordt gekoppeld aan het bestand gespecificeerd door fileObject .


Methoden van FileInputStream

De FileInputStream class biedt implementaties voor verschillende methoden die aanwezig zijn in de InputStream klasse.

read()-methode

  • read() - leest een enkele byte uit het bestand
  • read(byte[] array) - leest de bytes uit het bestand en slaat op in de opgegeven array
  • read(byte[] array, int start, int length) - leest het aantal bytes gelijk aan lengte uit het bestand en wordt opgeslagen in de opgegeven array vanaf de positie start

Stel dat we een bestand hebben met de naam input.txt met de volgende inhoud.

This is a line of text inside the file.

Laten we proberen dit bestand te lezen met 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();
     }
  }
}

Uitvoer

Data in the file:
This is a line of text inside the file.

In het bovenstaande voorbeeld hebben we een bestandsinvoerstroom gemaakt met de naam input . De invoerstroom is gekoppeld aan de input.txt bestand.

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

Om gegevens uit het bestand te lezen, hebben we de read() . gebruikt methode binnen de while-lus.


beschikbare() methode

Om het aantal beschikbare bytes te krijgen, kunnen we de available() . gebruiken methode. Bijvoorbeeld,

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();
      }
   }
}

Uitvoer

Available bytes at the beginning: 39
Available bytes at the end: 36

In het bovenstaande voorbeeld,

  1. We gebruiken eerst de available() methode om het aantal beschikbare bytes in de bestandsinvoerstroom te controleren.
  2. We hebben toen de read() . gebruikt methode 3 keer om 3 bytes uit de bestandsinvoerstroom te lezen.
  3. Na het lezen van de bytes hebben we nu opnieuw de beschikbare bytes gecontroleerd. Deze keer zijn de beschikbare bytes met 3 afgenomen.

skip()-methode

Om het opgegeven aantal bytes te negeren en over te slaan, kunnen we de skip() . gebruiken methode. Bijvoorbeeld,

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();
      }
   }
}

Uitvoer

Input Stream after skipping 5 bytes:
is a line of text inside the file.

In het bovenstaande voorbeeld hebben we de skip() . gebruikt methode om 5 bytes aan gegevens uit de bestandsinvoerstroom over te slaan. Vandaar dat de bytes die de tekst "This " . vertegenwoordigen wordt niet gelezen uit de invoerstroom.


close()-methode

Om de bestandsinvoerstroom te sluiten, kunnen we de close() . gebruiken methode. Zodra de close() methode wordt aangeroepen, kunnen we de invoerstroom niet gebruiken om gegevens te lezen.

In alle bovenstaande voorbeelden hebben we de close() . gebruikt methode om de bestandsinvoerstroom te sluiten.


Andere methoden van FileInputStream

Methoden Beschrijvingen
finalize() zorgt ervoor dat de close() methode heet
getChannel() retourneert het object van FileChannel gekoppeld aan de invoerstroom
getFD() retourneert de bestandsdescriptor die is gekoppeld aan de invoerstroom
mark() markeer de positie in de invoerstroom tot waar gegevens zijn gelezen
reset() geeft de besturing terug naar het punt in de invoerstroom waar de markering is ingesteld

Ga voor meer informatie naar Java FileInputStream (officiële Java-documentatie).


Java

  1. Java laatste trefwoord
  2. Java-instantie van Operator
  3. Java geneste statische klasse
  4. Java anonieme klasse
  5. Java Singleton-klasse
  6. Java-reflectie
  7. Java ObjectOutputStream-klasse
  8. Java BufferedReader-klasse
  9. Java-scannerklasse
  10. Java-generieken
  11. Java-bestandsklasse