La classe FileInputStream in Java viene utilizzata per leggere i dati da un file sotto forma di byte. È ideale per leggere dati binari come immagini o file audio. Per leggere file di testo è meglio usare Lettore di file.
- Accesso diretto: Legge direttamente il contenuto del file dal disco senza buffering
- Indipendente dalla piattaforma: Può funzionare su qualsiasi sistema operativo
Dichiarazione
La classe FileInputStream estende il file InputStream class, il che significa che eredita metodi per leggere dati byte grezzi dai file.
la classe pubblica FileInputStream estende InputStream
Esempio: Classe FileInputStream per leggere i dati dal file.
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()); } } }
Produzione:
ProduzioneCostruttori di Classe FileInputStream
1. FileInputStream (nome stringa)
Crea un flusso di file di input da leggere da un file con il nome specificato.
FileInputStream fi = new FileInputStream('esempio.txt');
2. FileInputStream(File di file)
Crea un flusso di file di input da leggere dall'oggetto File specificato.
File f = nuovo File('esempio.txt');
FileInputStream fi = nuovo FileInputStream(f);
3. FileInputStream(DescrittoreFile fdobj)
Crea un flusso di file di input da leggere dal descrittore di file specificato.
DescrizioneFile fd = DescrizioneFile.in;
FileInputStream fi = nuovo FileInputStream(fd);
Crea un file denominato file.txt nella directory del tuo progetto con il seguente contenuto:
Javaquesto è il mio primo codice
questo è il mio secondo codice
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()); } } }
Produzione:
costruttore in Java
ProduzioneMetodi di Java Classe FileInputStream
| Metodi | Azione eseguita |
|---|---|
| disponibile() | Restituisce una stima del numero di byte rimanenti che possono essere letti (o ignorati) da questo flusso di input. |
| vicino() | Chiude questo flusso di input del file e rilascia tutte le risorse di sistema associate al flusso. |
| finalizzare() | Garantisce che il metodo di chiusura di questo flusso di input di file venga chiamato quando non sono più presenti riferimenti ad esso. |
| getCanale() | Restituisce l'oggetto FileChannel univoco associato a questo flusso di input di file. |
| getFD() | Restituisce l'oggetto FileDescriptor che rappresenta la connessione al file effettivo nel file system utilizzato da questo FileInputStream. |
| Leggere() | Legge un byte di dati da questo flusso di input |
| leggi(byte[] b) | Legge fino a b.length byte di dati da questo flusso di input in un array di byte. |
| read(byte[] b int off int len) | Legge fino a len byte di dati da questo flusso di input in un array di byte. |
| saltare() | Salta ed elimina n byte di dati dal flusso di input |