In questo tutorial impareremo a conoscere Java BufferedReader e i suoi metodi con l'aiuto di esempi.
La BufferedReader
classe del java.io
pacchetto può essere utilizzata con altri lettori per leggere i dati (in caratteri) in modo più efficiente.
Estende la classe astratta Reader
.
Funzionamento di BufferedReader
La BufferedReader
mantiene una interna tampone di 8192 caratteri .
Durante l'operazione di lettura in BufferedReader
, un blocco di caratteri viene letto dal disco e memorizzato nel buffer interno. E dal buffer interno i caratteri vengono letti individualmente.
Pertanto, il numero di comunicazioni con il disco è ridotto. Questo è il motivo per cui leggere i caratteri è più veloce utilizzando BufferedReader
.
Crea un BufferedReader
Per creare un BufferedReader
, dobbiamo java.io.BuferedReader
prima importare il pacchetto. Una volta importato il pacchetto, ecco come possiamo creare il lettore.
// Creates a FileReader FileReader file = new FileReader(String file); // Creates a BufferedReader BufferedReader buffer = new BufferedReader(file);
Nell'esempio precedente, abbiamo creato un BufferedReader
buffer denominato con il FileReader
file denominato.
Qui, il buffer interno di BufferedReader
ha la dimensione predefinita di 8192 caratteri. Tuttavia, possiamo specificare anche la dimensione del buffer interno.
// Creates a BufferdReader with specified size internal buffer BufferedReader buffer = new BufferedReader(file, int size);
Il buffer aiuterà a leggere i caratteri dai file più rapidamente.
Metodi di BufferedReader
La BufferedReader
classe fornisce implementazioni per diversi metodi presenti in Reader
.
metodo read ()
read()
- legge un singolo carattere dal buffer interno del lettoreread(char() array)
- legge i caratteri dal lettore e li memorizza nell'array specificatoread(char() array, int start, int length)
- legge il numero di caratteri pari alla lunghezza dal lettore e memorizza nell'array specificato a partire dall'inizio della posizione
Ad esempio, supponiamo di avere un file denominato input.txt con il seguente contenuto.
This is a line of text inside the file.
Proviamo a leggere il file usando BufferedReader
.
import java.io.FileReader; import java.io.BufferedReader; class Main ( public static void main(String() args) ( // Creates an array of character char() array = new char(100); try ( // Creates a FileReader FileReader file = new FileReader("input.txt"); // Creates a BufferedReader BufferedReader input = new BufferedReader(file); // Reads characters input.read(array); System.out.println("Data in the file: "); System.out.println(array); // Closes the reader 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 lettore bufferizzato denominato input. Il lettore bufferizzato è collegato al file input.txt .
FileReader file = new FileReader("input.txt"); BufferedReader input = new BufferedReader(file);
Qui abbiamo utilizzato il read()
metodo per leggere un array di caratteri dal buffer interno del lettore bufferizzato.
metodo skip ()
Per scartare e saltare il numero di caratteri specificato, possiamo usare il skip()
metodo. Per esempio,
import java.io.FileReader; import java.io.BufferedReader; public class Main ( public static void main(String args()) ( // Creates an array of characters char() array = new char(100); try ( // Suppose, the input.txt file contains the following text // This is a line of text inside the file. FileReader file = new FileReader("input.txt"); // Creates a BufferedReader BufferedReader input = new BufferedReader(file); // Skips the 5 characters input.skip(5); // Reads the characters input.read(array); System.out.println("Data after skipping 5 characters:"); System.out.println(array); // closes the reader input.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )
Produzione
Dati dopo aver saltato 5 caratteri: è una riga di testo all'interno del file.
Nell'esempio sopra, abbiamo utilizzato il skip()
metodo per saltare 5 caratteri dal lettore di file. Quindi, i personaggi 'T'
, 'h'
, 'i'
, 's'
e ' '
vengono ignorati dal file originale.
metodo close ()
Per chiudere il lettore bufferizzato, possiamo usare il close()
metodo. Una volta close()
chiamato il metodo, non possiamo usare il lettore per leggere i dati.
Altri metodi di BufferedReader
Metodo | Descrizione |
---|---|
ready() | controlla se il lettore di file è pronto per essere letto |
mark() | segnare la posizione nel lettore fino alla quale i dati sono stati letti |
reset() | restituisce il controllo al punto del lettore in cui è stato impostato il segno |
Per saperne di più, visita Java BufferedReader (documentazione Java ufficiale).