I denne opplæringen vil vi lære om Java FileInputStream og metodene ved hjelp av eksempler.
Den FileInputStream
klassen av java.io
pakken kan brukes til å lese data (i byte) fra filer.
Det utvider den InputStream
abstrakte 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.FileInputStream
pakken. 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 FileInputStream
klasse gir implementeringer for forskjellige metoder for å medføre i InputStream
klassen.
les () Metode
read()
- leser en enkelt byte fra filenread(byte() array)
- leser byte fra filen og lagrer i den angitte matrisenread(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,
- Vi bruker først
available()
metoden for å sjekke antall tilgjengelige byte i filinngangsstrømmen. - Vi har deretter brukt
read()
metoden 3 ganger for å lese 3 byte fra filinngangsstrømmen. - 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 FileChannel tilknyttet 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).