Java FileInputStream (med eksempler)

I denne opplæringen vil vi lære om Java FileInputStream og metodene ved hjelp av eksempler.

Den FileInputStreamklassen av java.iopakken kan brukes til å lese data (i byte) fra filer.

Det utvider den InputStreamabstrakte klassen.

Før du lærer om FileInputStream, må du sørge for å vite om Java Files.

Opprett en FileInputStream

For å opprette en filinngangsstrøm, må vi først importere java.io.FileInputStreampakken. Når vi har importert pakken, kan du lage en filinngangsstrøm i Java.

1. Bruke banen til filen

 FileInputStream input = new FileInputStream(stringPath); 

Her har vi opprettet en inngangsstrøm som vil bli koblet til filen spesifisert av banen.

2. Bruke et objekt av filen

 FileInputStream input = new FileInputStream(File fileObject); 

Her har vi opprettet en inngangsstrøm som vil bli koblet til filen spesifisert av fileObject.

Metoder for FileInputStream

Den FileInputStreamklasse gir implementeringer for forskjellige metoder for å medføre i InputStreamklassen.

les () Metode

  • read() - leser en enkelt byte fra filen
  • read(byte() array) - leser byte fra filen og lagrer i den angitte matrisen
  • read(byte() array, int start, int length) - leser antall byte som er lik lengden fra filen og lagrer i den angitte matrisen fra posisjonsstart

Anta at vi har en fil som heter input.txt med følgende innhold.

 This is a line of text inside the file. 

La oss prøve å lese denne filen ved hjelp av 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(); ) ) ) 

Produksjon

 Data i filen: Dette er en tekstlinje i filen. 

I eksemplet ovenfor har vi opprettet en filinngangsstrøm som heter input. Inngangsstrømmen er koblet til input.txt- filen.

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

For å lese data fra filen har vi brukt read()metoden i mens loop.

tilgjengelig () Metode

For å få antall tilgjengelige byte kan vi bruke 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(); ) ) ) 

Produksjon

 Tilgjengelige byte i begynnelsen: 39 Tilgjengelige byte på slutten: 36 

I eksemplet ovenfor,

  1. Vi bruker først available()metoden for å sjekke antall tilgjengelige byte i filinngangsstrømmen.
  2. Vi har deretter brukt read()metoden 3 ganger for å lese 3 byte fra filinngangsstrømmen.
  3. Nå, etter å ha lest byte, har vi igjen sjekket tilgjengelige byte. Denne gangen reduserte de tilgjengelige byte med 3.

skip () Metode

For å forkaste og hoppe over det angitte antallet byte, kan vi bruke 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(); ) ) ) 

Produksjon

 Inngangsstrøm etter å ha hoppet over 5 byte: er en tekstlinje i filen. 

I eksemplet ovenfor har vi brukt skip()metoden til å hoppe over 5 byte med data fra filinngangsstrømmen. Derfor blir ikke byte som representerer teksten "Dette" lest fra inngangsstrømmen.

lukk () Metode

For å lukke filinngangsstrømmen kan vi bruke close()metoden. Når close()metoden er kalt, kan vi ikke bruke inngangsstrømmen til å lese data.

I alle eksemplene ovenfor har vi brukt close()metoden for å lukke filinngangsstrømmen.

Andre metoder for FileInputStream

Metoder Beskrivelser
finalize() sørger for at close()metoden blir kalt
getChannel() returnerer objektet som er FileChanneltilknyttet inngangsstrømmen
getFD() returnerer filbeskrivelsen tilknyttet inngangsstrømmen
mark() merk posisjonen i inngangsstrømmen som data er lest opp til
reset() returnerer kontrollen til punktet i inngangsstrømmen der merket ble satt

For å lære mer, besøk Java FileInputStream (offisiell Java-dokumentasjon).

Interessante artikler...