logo

Java FileInputStream Class

Klassen FileInputStream i Java används för att läsa data från en fil i form av byte. Den är idealisk för att läsa binär data som bilder eller ljudfiler. För att läsa textfiler är det bättre att använda FileReader.

  • Direkt åtkomst: Den läser filinnehållet direkt från disken utan buffring
  • Plattformsoberoende: Det kan fungera på alla operativsystem

Förklaring

Klassen FileInputStream utökar InputStream klass vilket innebär att den ärver metoder för att läsa råbytedata från filer.

public class FileInputStream utökar InputStream



Exempel: FileInputStream-klass för att läsa data från fil.

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

Produktion:  

Skärmdump' title=Produktion

Konstruktörer av FileInputStream-klass

1. FileInputStream(String name)

Skapar en indatafilström att läsa från en fil med det angivna namnet. 

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

2. FileInputStream (filfil)

Skapar en indatafilström att läsa från det angivna filobjektet. 

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

3. FileInputStream(FileDescriptor fdobj)

Skapar en indatafilström att läsa från den angivna filbeskrivningen. 

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

Skapa en fil med namnet file.txt i din projektkatalog med följande innehåll:

detta är min första kod
detta är min andra kod

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

Produktion:  

Produktion' loading='lazy' title=Produktion

Java-metoder FileInputStream-klass

Metoder Åtgärd utförd 
tillgänglig() Returnerar en uppskattning av antalet återstående byte som kan läsas (eller hoppa över) från denna ingångsström.
nära() Stänger denna filinmatningsström och frigör alla systemresurser som är associerade med strömmen.
avsluta() Säkerställer att stängningsmetoden för denna filinmatningsström anropas när det inte finns fler referenser till den. 
getChannel() Returnerar det unika FileChannel-objekt som är associerat med denna filinmatningsström. 
getFD() Returnerar FileDescriptor-objektet som representerar anslutningen till den faktiska filen i filsystemet som används av denna FileInputStream.
läsa() Läser en byte med data från denna ingångsström
read(byte[] b)Läser upp till b.length byte med data från denna ingångsström till en array av byte. 
read(byte[] b int av int len)Läser upp till byte med data från denna ingångsström till en array av byte.
hoppa() Hoppar över och kasserar n byte med data från inmatningsströmmen
Skapa frågesport