I denne vejledning lærer vi om Java FileInputStream og dens metoder ved hjælp af eksempler.
Den FileInputStream
klasse af java.io
pakken kan bruges til at læse data (i byte) fra filer.
Det udvider den InputStream
abstrakte 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.FileInputStream
pakken. 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 FileInputStream
klasse giver implementeringer for forskellige metoder præsentere i InputStream
klasse.
læs () Metode
read()
- læser en enkelt byte fra filenread(byte() array)
- læser bytes fra filen og gemmer i det angivne arrayread(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
- Vi bruger først
available()
metoden til at kontrollere antallet af tilgængelige bytes i filinputstrømmen. - Vi har derefter brugt
read()
metoden 3 gange til at læse 3 bytes fra filinputstrømmen. - 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 FileChannel tilknyttet 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).