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.
Javaimport 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:
VýstupKonstruktéř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:
Javatoto je můj první kód
toto je můj druhý kód
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ýstupMetody 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 |