Trieda FileInputStream v jazyku Java sa používa na čítanie údajov zo súboru vo forme bajtov. Je ideálny na čítanie binárnych údajov, ako sú obrázky alebo zvukové súbory. Na čítanie textových súborov je lepšie použiť FileReader.
- Priamy prístup: Priamo číta obsah súboru z disku bez ukladania do vyrovnávacej pamäte
- Nezávislé od platformy: Môže pracovať na akomkoľvek operačnom systéme
Vyhlásenie
Trieda FileInputStream rozširuje InputStream trieda, čo znamená, že zdedí metódy na čítanie nespracovaných bajtových údajov zo súborov.
public class FileInputStream rozširuje InputStream
Príklad: Trieda FileInputStream na čítanie údajov zo súboru.
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ýstupKonštruktéri z Trieda FileInputStream
1. FileInputStream (názov reťazca)
Vytvorí prúd vstupného súboru na čítanie zo súboru so zadaným názvom.
FileInputStream fi = new FileInputStream('example.txt');
2. FileInputStream (súbor súboru)
Vytvorí prúd vstupného súboru na čítanie zo zadaného objektu File.
Súbor f = nový Súbor('example.txt');
FileInputStream fi = new FileInputStream(f);
3. FileInputStream(FileDescriptor fdobj)
Vytvorí prúd vstupného súboru na čítanie zo zadaného deskriptora súboru.
FileDescriptor fd = FileDescriptor.in;
FileInputStream fi = new FileInputStream(fd);
Vytvorte súbor s názvom file.txt v adresári projektu s nasledujúcim obsahom:
Javatoto je môj prvý 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ýstupMetódy Java Trieda FileInputStream
| Metódy | Akcia vykonaná |
|---|---|
| k dispozícii() | Vráti odhadovaný počet zostávajúcich bajtov, ktoré možno prečítať (alebo preskočiť) z tohto vstupného toku. |
| zavrieť() | Zatvorí tento vstupný prúd súboru a uvoľní všetky systémové prostriedky spojené s prúdom. |
| finalizovať () | Zabezpečuje, aby sa zavolala metóda zatvorenia tohto vstupného toku súboru, keď už naň neexistujú žiadne odkazy. |
| getChannel() | Vráti jedinečný objekt FileChannel priradený k tomuto vstupnému toku súboru. |
| getFD() | Vráti objekt FileDescriptor, ktorý predstavuje pripojenie k skutočnému súboru v systéme súborov, ktorý používa tento FileInputStream. |
| prečítať () | Číta bajt údajov z tohto vstupného toku |
| čítať(bajt[] b) | Číta až b.dĺžka bajtov dát z tohto vstupného toku do poľa bajtov. |
| read(byte[] b int off int len) | Prečíta až len bajtov údajov z tohto vstupného toku do poľa bajtov. |
| preskočiť () | Preskočí a zahodí n bajtov údajov zo vstupného toku |