logo

Java FileInputStream Class

FileInputStream-klassen i Java brukes til å lese data fra en fil i form av byte. Den er ideell for å lese binære data som bilder eller lydfiler. For å lese tekstfiler er det bedre å bruke FileReader.

  • Direkte tilgang: Den leser filinnholdet direkte fra disken uten å bufre
  • Plattformuavhengig: Det kan fungere på alle operativsystemer

Erklæring

FileInputStream-klassen utvider InputStream klasse som betyr at den arver metoder for å lese råbytedata fra filer.

public class FileInputStream utvider InputStream



Eksempel: FileInputStream-klassen for å lese data fra filen.

Java
import java.io.*; public class Geeks{    public static void main(String[] args){    // Use try-with-resources to automatically close the  // stream  try (FileInputStream fi  = new FileInputStream('file1.txt')) {  // Display file channel information  System.out.println('Channel: '  + fi.getChannel());  // Display file descriptor  System.out.println('File Descriptor: '  + fi.getFD());  // Show available bytes in the stream  System.out.println('Number of remaining bytes: '  + fi.available());  // Skip first few bytes  fi.skip(4);  System.out.println('File Contents:');  // Read and print file content  int ch;  while ((ch = fi.read()) != -1) {  System.out.print((char)ch);  }  }  catch (FileNotFoundException e) {  System.out.println(  'File not found: Ensure 'file1.txt' exists in the working directory.');  }  catch (IOException e) {  System.out.println(  'An error occurred while reading the file: '  + e.getMessage());  }  } } 

Produksjon:  

Skjermdump' title=Produksjon

Konstruktører av FileInputStream Class

1. FileInputStream(strengnavn)

Oppretter en inndatafilstrøm for å lese fra en fil med det angitte navnet. 

FileInputStream fi = new FileInputStream('example.txt');

2. FileInputStream (filfil)

Oppretter en inndatafilstrøm for å lese fra det angitte filobjektet. 

File f = new File('example.txt');
FileInputStream fi = ny FileInputStream(f);

3. FileInputStream(FileDescriptor fdobj)

Oppretter en inndatafilstrøm for å lese fra den angitte filbeskrivelsen. 

FileDescriptor fd = FileDescriptor.in;
FileInputStream fi = ny FileInputStream(fd); 

Opprett en fil med navnet file.txt i prosjektkatalogen med følgende innhold:

hva er et linux-filsystem

dette er min første kode
dette er min andre kode

Java
import java.io.*; public class Geeks {  public static void main(String[] args)  {  // Use try-with-resources to automatically close the stream  try (FileInputStream fi  = new FileInputStream('file1.txt')) {  // Display file channel information  System.out.println('Channel: '  + fi.getChannel());  // Display file descriptor  System.out.println('File Descriptor: '  + fi.getFD());  // Illustrating available method  System.out.println('Number of remaining bytes: '  + fi.available());  // Illustrating skip() method  fi.skip(4);  System.out.println('File Contents:');  // Reading characters from FileInputStream  int ch;  while ((ch = fi.read()) != -1) {  System.out.print((char)ch);  }  }  catch (FileNotFoundException e) {  System.out.println(  'File not found: Ensure 'file1.txt' exists in the working directory.');  }  catch (IOException e) {  System.out.println(  'An error occurred while reading the file: '  + e.getMessage());  }  } } 

Produksjon:  

Produksjon' loading='lazy' title=Produksjon

Java-metoder FileInputStream Class

Metoder Handling utført 
tilgjengelig() Returnerer et estimat av antall gjenværende byte som kan leses (eller hoppes over) fra denne inngangsstrømmen.
lukke() Lukker denne filinndatastrømmen og frigjør eventuelle systemressurser knyttet til strømmen.
fullføre() Sikrer at lukkemetoden for denne filinndatastrømmen kalles når det ikke er flere referanser til den. 
getChannel() Returnerer det unike FileChannel-objektet som er knyttet til denne filinndatastrømmen. 
getFD() Returnerer FileDescriptor-objektet som representerer tilkoblingen til den faktiske filen i filsystemet som brukes av denne FileInputStream.
lese() Leser en byte med data fra denne inndatastrømmen
les(byte[] b)Leser opp til b.length byte med data fra denne inngangsstrømmen til en rekke byte. 
read(byte[] b int av int len)Leser opp til byte med data fra denne inngangsstrømmen til en rekke byte.
hoppe over() Hopper over og forkaster n byte med data fra inndatastrømmen
Lag quiz