In questo tutorial, impareremo a conoscere Java FileInputStream e i suoi metodi con l'aiuto di esempi.
La FileInputStream
classe del java.io
pacchetto può essere utilizzata per leggere i dati (in byte) dai file.
Estende la InputStream
classe astratta.
Prima di saperne di più FileInputStream
, assicurati di conoscere i file Java.
Crea un FileInputStream
Per creare un flusso di input di file, dobbiamo java.io.FileInputStream
prima importare il pacchetto. Una volta importato il pacchetto, ecco come possiamo creare un flusso di input di file in Java.
1. Utilizzo del percorso del file
FileInputStream input = new FileInputStream(stringPath);
Qui abbiamo creato un flusso di input che verrà collegato al file specificato dal percorso.
2. Utilizzo di un oggetto del file
FileInputStream input = new FileInputStream(File fileObject);
Qui abbiamo creato un flusso di input che verrà collegato al file specificato da fileObject
.
Metodi di FileInputStream
La FileInputStream
classe fornisce implementazioni per diversi metodi presenti nella InputStream
classe.
metodo read ()
read()
- legge un singolo byte dal fileread(byte() array)
- legge i byte dal file e li memorizza nell'array specificatoread(byte() array, int start, int length)
- legge il numero di byte pari alla lunghezza dal file e memorizza nell'array specificato a partire dalla posizione iniziale
Supponiamo di avere un file denominato input.txt con il seguente contenuto.
This is a line of text inside the file.
Proviamo a leggere questo file usando FileInputStream
.
import java.io.FileInputStream; public class Main ( public static void main(String args()) ( try ( FileInputStream input = new FileInputStream("input.txt"); System.out.println("Data in the file: "); // Reads the first byte int i = input.read(); while(i != -1) ( System.out.print((char)i); // Reads next byte from the file i = input.read(); ) input.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) )
Produzione
Dati nel file: questa è una riga di testo all'interno del file.
Nell'esempio precedente, abbiamo creato un flusso di input di file denominato input. Il flusso di input è collegato al file input.txt .
FileInputStream input = new FileInputStream("input.txt");
Per leggere i dati dal file, abbiamo utilizzato il read()
metodo all'interno del ciclo while.
disponibile () Metodo
Per ottenere il numero di byte disponibili, possiamo utilizzare il available()
metodo. Per esempio,
import java.io.FileInputStream; public class Main ( public static void main(String args()) ( try ( // Suppose, the input.txt file contains the following text // This is a line of text inside the file. FileInputStream input = new FileInputStream("input.txt"); // Returns the number of available bytes System.out.println("Available bytes at the beginning: " + input.available()); // Reads 3 bytes from the file input.read(); input.read(); input.read(); // Returns the number of available bytes System.out.println("Available bytes at the end: " + input.available()); input.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )
Produzione
Byte disponibili all'inizio: 39 Byte disponibili alla fine: 36
Nell'esempio sopra,
- Per prima cosa usiamo il
available()
metodo per controllare il numero di byte disponibili nel flusso di input del file. - Abbiamo quindi utilizzato il
read()
metodo 3 volte per leggere 3 byte dal flusso di input del file. - Ora, dopo aver letto i byte, abbiamo nuovamente controllato i byte disponibili. Questa volta i byte disponibili sono diminuiti di 3.
metodo skip ()
Per scartare e saltare il numero di byte specificato, possiamo usare il skip()
metodo. Per esempio,
import java.io.FileInputStream; public class Main ( public static void main(String args()) ( try ( // Suppose, the input.txt file contains the following text // This is a line of text inside the file. FileInputStream input = new FileInputStream("input.txt"); // Skips the 5 bytes input.skip(5); System.out.println("Input stream after skipping 5 bytes:"); // Reads the first byte int i = input.read(); while (i != -1) ( System.out.print((char) i); // Reads next byte from the file i = input.read(); ) // close() method input.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )
Produzione
Input Stream dopo aver saltato 5 byte: è una riga di testo all'interno del file.
Nell'esempio precedente, abbiamo utilizzato il skip()
metodo per saltare 5 byte di dati dal flusso di input del file. Pertanto, i byte che rappresentano il testo "This" non vengono letti dal flusso di input.
metodo close ()
Per chiudere il flusso di input del file, possiamo usare il close()
metodo. Una volta close()
chiamato il metodo, non possiamo usare il flusso di input per leggere i dati.
In tutti gli esempi precedenti, abbiamo utilizzato il close()
metodo per chiudere il flusso di input del file.
Altri metodi di FileInputStream
Metodi | Descrizioni |
---|---|
finalize() | assicura che il close() metodo venga chiamato |
getChannel() | restituisce l'oggetto FileChannel associato al flusso di input |
getFD() | restituisce il descrittore di file associato al flusso di input |
mark() | segnare la posizione nel flusso di input fino alla quale i dati sono stati letti |
reset() | restituisce il controllo al punto del flusso di input in cui è stato impostato il contrassegno |
Per saperne di più, visita Java FileInputStream (documentazione Java ufficiale).