La classe FileInputStream a Java s'utilitza per llegir dades d'un fitxer en forma de bytes. És ideal per llegir dades binàries com ara imatges o fitxers d'àudio. Per llegir fitxers de text és millor utilitzar FileReader.
- Accés directe: Llegeix directament el contingut del fitxer des del disc sense emmagatzemar la memòria intermèdia
- Plataforma independent: Pot funcionar en qualsevol sistema operatiu
Declaració
La classe FileInputStream amplia el fitxer InputStream classe, el que significa que hereta mètodes per llegir dades de bytes en brut dels fitxers.
la classe pública FileInputStream amplia InputStream
Exemple: Classe FileInputStream per llegir dades del fitxer.
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()); } } }
Sortida:
SortidaConstructors de Classe FileInputStream
1. FileInputStream (nom de la cadena)
Crea un flux de fitxers d'entrada per llegir des d'un fitxer amb el nom especificat.
FileInputStream fi = new FileInputStream('example.txt');
cadena a ella
2. FileInputStream (fitxer de fitxer)
Crea un flux de fitxers d'entrada per llegir des de l'objecte Fitxer especificat.
Fitxer f = nou Fitxer('example.txt');
FileInputStream fi = nou FileInputStream(f);
3. FileInputStream(FileDescriptor fdobj)
Crea un flux de fitxers d'entrada per llegir des del descriptor de fitxer especificat.
FileDescriptor fd = FileDescriptor.in;
FileInputStream fi = nou FileInputStream(fd);què és el maneig d'excepcions a Java
Creeu un fitxer anomenat file.txt al directori del vostre projecte amb el contingut següent:
Javaaquest és el meu primer codi
aquest és el meu segon codi
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()); } } }
Sortida:
SortidaMètodes de Java Classe FileInputStream
| Mètodes | Acció realitzada |
|---|---|
| disponible () | Retorna una estimació del nombre de bytes restants que es poden llegir (o ometre) d'aquest flux d'entrada. |
| tancar () | Tanca aquest flux d'entrada de fitxers i allibera tots els recursos del sistema associats al flux. |
| finalitzar () | Assegura que el mètode de tancament d'aquest flux d'entrada de fitxer es crida quan no hi ha més referències. |
| getChannel() | Retorna l'objecte FileChannel únic associat amb aquest flux d'entrada de fitxer. |
| getFD() | Retorna l'objecte FileDescriptor que representa la connexió amb el fitxer real del sistema de fitxers que utilitza aquest FileInputStream. |
| llegir () | Llegeix un byte de dades d'aquest flux d'entrada |
| llegir(byte[] b) | Llegeix fins a b.length bytes de dades d'aquest flux d'entrada en una matriu de bytes. |
| llegir(byte[] b int off int len) | Llegeix fins a len bytes de dades d'aquest flux d'entrada en una matriu de bytes. |
| saltar () | Salta i descarta n bytes de dades del flux d'entrada |