Flusso di input di file Java in Ubuntu 20.04

Flusso Di Input Di File Java In Ubuntu 20 04



“In questo articolo, discuteremo diversi modi per leggere i dati dai file in un array di byte utilizzando la classe Java Input Stream. Questa classe rappresenta un flusso ordinato di byte da un file. Ci sono più funzioni nella classe Java Input Stream che sono comunemente usate e saranno discusse in questo articolo, come i metodi read(), available(), skip() e close(). Questi metodi vengono utilizzati per leggere file di diverse estensioni come file bin o txt e possono essere modificati per ottenere informazioni da qualsiasi punto del file. In questo articolo implementeremo questi metodi nell'ambiente Ubuntu 20.04.

Esistono molti altri metodi della classe File Input Stream che sono anche molto utili per ottenere dati da un file; alcuni di essi sono int read(byte[] b), questa funzione legge i dati dal flusso di input fino a b.length byte di lunghezza. File Channel ottiene il channel(): Lo specifico oggetto File Channel connesso al flusso di input del file viene restituito utilizzandolo. Finalize() viene utilizzato per garantire che la funzione close() venga richiamata quando non vi è più riferimento al flusso di input del file.

Esempio 01: lettura di un singolo byte da un file di testo utilizzando i metodi read() e close() della classe Input Stream

Questo esempio usa File Input Stream per leggere un singolo carattere e stampare il contenuto. Supponiamo di avere un file chiamato 'file.txt' con il contenuto mostrato di seguito:









Supponiamo di avere un file chiamato 'file.txt' con il contenuto mostrato sopra. Proviamo ora a leggere e stampare il primo carattere del file.







Dobbiamo prima importare java.io. Pacchetto File Input Stream per costruire un flusso di file di input. Quindi creeremo un nuovo oggetto di File Input Stream che sarà collegato al file specificato (file.txt) nella variabile 'f'.

In questo esempio, utilizzeremo il metodo 'int read()' della classe Java File Input Stream, che viene utilizzato per leggere un singolo byte dal file e salvarlo nella variabile 'I'. Successivamente, 'System.out.print(char(i))' visualizza il carattere corrispondente a quel byte.



Il metodo f.close() chiude il file e lo stream. Otterremo il seguente output dopo aver creato ed eseguito il suddetto script, poiché possiamo vedere che viene stampata solo la lettera iniziale del testo 'L'.

Esempio 02: Lettura di tutto il contenuto di un file di testo utilizzando i metodi read() e close() della classe Input Stream

In questo esempio leggeremo e visualizzeremo tutto il contenuto di un file di testo; come mostrato di seguito:

Ancora una volta importeremo java.io. Pacchetto File Input Stream per costruire un flusso di file di input.

Per prima cosa, leggeremo il primo byte del file e visualizzeremo il carattere corrispondente all'interno del ciclo while. Il ciclo while verrà eseguito finché non rimangono byte, ovvero la fine del testo nel file. La riga 12 leggerà il byte successivo e il ciclo continuerà fino all'ultimo byte del file.

Dopo aver compilato ed eseguito il codice sopra, otterremo i seguenti risultati. Come possiamo vedere, nel terminale viene visualizzato tutto il testo del file “Lorep Ipsum”.

Esempio 03: determinazione del numero di byte disponibili in un file di testo utilizzando il metodo available() della classe Input Stream

In questo esempio, utilizzeremo la funzione 'disponibile()' del flusso di input del file per determinare il numero di byte esistenti nel flusso di input del file.

Innanzitutto, abbiamo generato un oggetto della classe di flusso di input del file denominato 'a' con il codice seguente. Nella riga 5, abbiamo utilizzato il metodo 'available()' per determinare e visualizzare la quantità totale di byte disponibili nel file. Quindi dalla riga 6 alla riga 8, abbiamo utilizzato tre volte la funzione 'read()'. Ora nella riga 9, abbiamo usato di nuovo il metodo 'available()' per controllare e visualizzare i byte rimanenti.

Dopo aver compilato ed eseguito il codice, possiamo vedere che la prima riga dell'output mostra il numero totale di byte disponibili nel file. La riga successiva mostra il numero di byte disponibili alla fine del codice, che è 3 byte in meno rispetto ai byte disponibili all'inizio. Questo perché abbiamo usato il metodo read tre volte nel nostro codice.

Esempio 04: saltare i byte di un file di testo per leggere i dati da un punto specifico utilizzando il metodo skip() della classe Input Stream

In questo esempio, utilizzeremo il metodo 'skip(x)' di File Input Stream, che viene utilizzato per ignorare e ignorare il numero specificato di byte di dati dal flusso di input.

Nel codice seguente, per prima cosa, abbiamo creato un flusso di input di file e lo abbiamo archiviato nella variabile 'a'. Successivamente, abbiamo utilizzato il metodo 'a.skip(5)', che salterà i primi 5 byte del file. Successivamente, abbiamo stampato i restanti caratteri del file utilizzando il metodo 'read()' all'interno di un ciclo while. Infine, abbiamo chiuso il flusso di input del file con il metodo 'close()'.

Di seguito è riportato lo screenshot del terminale dopo la compilazione e l'esecuzione del codice. Come possiamo vedere, viene visualizzato solo 'Ipsum' poiché abbiamo saltato i primi 5 byte usando il metodo 'skip()'.

Conclusione

In questo articolo, abbiamo discusso gli usi della classe File Input Stream e i suoi diversi metodi; read(), available(), skip() e close(). Abbiamo usato questi metodi per leggere il primo elemento di un file usando i metodi read() e close(). Quindi leggiamo l'intero file attraverso l'approccio iterativo e utilizzando gli stessi metodi. Quindi abbiamo utilizzato il metodo available() per determinare il numero di byte presenti all'inizio e al completamento del file. Successivamente, abbiamo utilizzato il metodo skip() per saltare diversi byte prima di leggere il file, il che ci ha permesso di ottenere i dati specifici di cui avevamo bisogno.