Java FileInputStream (med eksempler)

I denne vejledning lærer vi om Java FileInputStream og dens metoder ved hjælp af eksempler.

Den FileInputStreamklasse af java.iopakken kan bruges til at læse data (i byte) fra filer.

Det udvider den InputStreamabstrakte klasse.

Før vi lærer om FileInputStream, skal du sørge for at vide om Java-filer.

Opret en FileInputStream

For at oprette en filinputstrøm skal vi først importere java.io.FileInputStreampakken. Når vi først har importeret pakken, kan du oprette en filinputstrøm i Java her.

1. Brug af stien til fil

 FileInputStream input = new FileInputStream(stringPath); 

Her har vi oprettet en inputstrøm, der linkes til den fil, der er angivet af stien.

2. Brug af et objekt i filen

 FileInputStream input = new FileInputStream(File fileObject); 

Her har vi oprettet en inputstrøm, der linkes til den fil, der er angivet af fileObject.

Metoder til FileInputStream

Den FileInputStreamklasse giver implementeringer for forskellige metoder præsentere i InputStreamklasse.

læs () Metode

  • read() - læser en enkelt byte fra filen
  • read(byte() array) - læser bytes fra filen og gemmer i det angivne array
  • read(byte() array, int start, int length) - læser antallet af byte svarende til længden fra filen og gemmes i det specificerede array startende fra positionens start

Antag, at vi har en fil med navnet input.txt med følgende indhold.

 This is a line of text inside the file. 

Lad os prøve at læse denne fil ved hjælp af 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(); ) ) ) 

Produktion

 Data i filen: Dette er en tekstlinje inde i filen. 

I ovenstående eksempel har vi oprettet en filinputstrøm med navnet input. Inputstrømmen er knyttet til input.txt- filen.

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

For at læse data fra filen har vi brugt read()metoden inde i while-sløjfen.

tilgængelig () Metode

For at få antallet af tilgængelige byte kan vi bruge available()metoden. For eksempel,

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

Produktion

 Tilgængelige bytes i starten: 39 Tilgængelige bytes i slutningen: 36 

I ovenstående eksempel

  1. Vi bruger først available()metoden til at kontrollere antallet af tilgængelige bytes i filinputstrømmen.
  2. Vi har derefter brugt read()metoden 3 gange til at læse 3 bytes fra filinputstrømmen.
  3. Efter at have læst bytes har vi igen kontrolleret de tilgængelige bytes. Denne gang faldt de tilgængelige bytes med 3.

spring () Metode

For at kassere og springe det angivne antal bytes kan vi bruge skip()metoden. For eksempel,

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

Produktion

 Input Stream efter at have sprunget over 5 byte: er en tekstlinje inde i filen. 

I ovenstående eksempel har vi brugt skip()metoden til at springe over 5 byte data fra filinputstrømmen. Derfor læses ikke bytes, der repræsenterer teksten "Dette", fra inputstrømmen.

close () Metode

For at lukke filinputstrømmen kan vi bruge close()metoden. Når close()metoden er kaldt, kan vi ikke bruge inputstrømmen til at læse data.

I alle ovenstående eksempler har vi brugt close()metoden til at lukke filinputstrømmen.

Andre metoder til FileInputStream

Metoder Beskrivelser
finalize() sikrer, at close()metoden kaldes
getChannel() returnerer objektet, der er FileChanneltilknyttet inputstrømmen
getFD() returnerer filbeskrivelsen, der er knyttet til inputstrømmen
mark() markere positionen i inputstrømmen, op til hvilken data er blevet læst
reset() returnerer kontrolelementet til det punkt i inputstrømmen, hvor mærket blev sat

For at lære mere, besøg Java FileInputStream (officiel Java-dokumentation).

Interessante artikler...