logo

Java FileInputStream-klasse

De klasse FileInputStream in Java wordt gebruikt om gegevens uit een bestand te lezen in de vorm van bytes. Het is ideaal voor het lezen van binaire gegevens zoals afbeeldingen of audiobestanden. Voor het lezen van tekstbestanden is het beter om te gebruiken Bestandslezer.

  • Directe toegang: Het leest de bestandsinhoud rechtstreeks van de schijf zonder buffering
  • Platformonafhankelijk: Het kan op elk besturingssysteem werken

Verklaring

De klasse FileInputStream breidt de Invoerstroom class, wat betekent dat het methoden overneemt voor het lezen van onbewerkte bytegegevens uit bestanden.

openbare klasse FileInputStream breidt InputStream uit



Voorbeeld: FileInputStream-klasse om gegevens uit een bestand te lezen.

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

Uitgang:  

Schermafbeelding' title=Uitvoer

Constructeurs van FileInputStream-klasse

1. FileInputStream(tekenreeksnaam)

Creëert een invoerbestandsstroom om te lezen uit een bestand met de opgegeven naam. 

FileInputStream fi = nieuwe FileInputStream('voorbeeld.txt');

2. FileInputStream(bestandsbestand)

Creëert een invoerbestandsstroom om te lezen uit het opgegeven File-object. 

Bestand f = nieuw bestand('voorbeeld.txt');
FileInputStream fi = nieuwe FileInputStream(f);

3. FileInputStream(FileDescriptorfdobj)

Creëert een invoerbestandsstroom om te lezen uit de opgegeven bestandsdescriptor. 

FileDescriptor fd = BestandDescriptor.in;
FileInputStream fi = nieuwe FileInputStream(fd); 

Maak een bestand met de naam file.txt in uw projectmap met de volgende inhoud:

dit is mijn eerste code
dit is mijn tweede code

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

Uitgang:  

Uitvoer' loading='lazy' title=Uitvoer

Methoden van Java FileInputStream-klasse

Methoden Actie uitgevoerd 
beschikbaar() Retourneert een schatting van het aantal resterende bytes dat kan worden gelezen (of overgeslagen) uit deze invoerstroom.
dichtbij() Sluit deze bestandsinvoerstroom en geeft alle systeembronnen vrij die aan de stroom zijn gekoppeld.
finaliseren() Zorgt ervoor dat de close-methode van deze bestandsinvoerstroom wordt aangeroepen als er geen verwijzingen meer naar zijn. 
getChannel() Retourneert het unieke FileChannel-object dat aan deze bestandsinvoerstroom is gekoppeld. 
getFD() Retourneert het FileDescriptor-object dat de verbinding vertegenwoordigt met het daadwerkelijke bestand in het bestandssysteem dat door deze FileInputStream wordt gebruikt.
lezen() Leest een byte aan gegevens uit deze invoerstroom
lees(byte[] b)Leest tot b.lengte bytes aan gegevens uit deze invoerstroom in een array van bytes. 
lezen(byte[] b int uit int len)Leest maximaal aantal bytes aan gegevens uit deze invoerstroom in een array van bytes.
overslaan() Slaat over en verwijdert n bytes aan gegevens uit de invoerstroom
Quiz maken