logo

Třída Java FileInputStream

Třída FileInputStream v Javě se používá ke čtení dat ze souboru ve formě bajtů. Je ideální pro čtení binárních dat, jako jsou obrázky nebo zvukové soubory. Pro čtení textových souborů je lepší použít FileReader.

  • Přímý přístup: Přímo čte obsah souboru z disku bez ukládání do vyrovnávací paměti
  • Nezávislé na platformě: Může fungovat na jakémkoli operačním systému

Prohlášení

Třída FileInputStream rozšiřuje InputStream třída, což znamená, že zdědí metody pro čtení nezpracovaných bajtových dat ze souborů.

public class FileInputStream rozšiřuje InputStream



Příklad: Třída FileInputStream pro čtení dat ze souboru.

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

výstup:  

Snímek obrazovky' title=Výstup

Konstruktéři Třída FileInputStream

1. FileInputStream (název řetězce)

Vytvoří proud vstupního souboru ke čtení ze souboru se zadaným názvem. 

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

2. FileInputStream (soubor souboru)

Vytvoří proud vstupního souboru ke čtení ze zadaného objektu File. 

Soubor f = nový Soubor('example.txt');
FileInputStream fi = new FileInputStream(f);

3. FileInputStream(FileDescriptor fdobj)

Vytvoří proud vstupního souboru ke čtení ze zadaného deskriptoru souboru. 

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

V adresáři projektu vytvořte soubor s názvem file.txt s následujícím obsahem:

toto je můj první kód
toto je můj druhý kód

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

výstup:  

Výstup' loading='lazy' title=Výstup

Metody Java Třída FileInputStream

Metody Akce provedena 
k dispozici() Vrátí odhadovaný počet zbývajících bajtů, které lze z tohoto vstupního toku přečíst (nebo přeskočit).
blízko() Zavře tento vstupní datový proud souboru a uvolní veškeré systémové prostředky spojené s datovým proudem.
dokončit() Zajistí, že metoda close tohoto vstupního datového proudu souboru bude volána, když na něj již neexistují žádné odkazy. 
getChannel() Vrátí jedinečný objekt FileChannel přidružený k tomuto vstupnímu datovému proudu souboru. 
getFD() Vrátí objekt FileDescriptor, který představuje připojení ke skutečnému souboru v systému souborů, který tento FileInputStream používá.
číst() Přečte bajt dat z tohoto vstupního toku
read(byte[] b)Přečte až b.délka bajtů dat z tohoto vstupního toku do pole bajtů. 
read(byte[] b int off int len)Přečte až len bajtů dat z tohoto vstupního toku do pole bajtů.
přeskočit() Přeskočí a zahodí n bajtů dat ze vstupního toku
Vytvořit kvíz