La classe Reader in Java è un classe astratta per leggere i flussi di caratteri. Le sue sottoclassi ( Lettore di file BufferedReade ) forniscono implementazioni con read() che è il metodo principale per leggere i caratteri.
- Implementa l'interfaccia Readable che definisce il metodo read(CharBuffer cb).
- Implementa l'interfaccia Closeable che definisce il metodo close() per rilasciare risorse.
Dichiarazione di Classe Lettore
La dichiarazione della classe Reader è riportata di seguito:
linux quale comando
la classe astratta pubblica Reader implementa Readable Closeable
Esempio: Leggere un file di testo carattere per carattere utilizzando la classe Reader.
Javaimport java.io.*; public class Geeks { public static void main(String[] args) { try { // Create a FileReader object which is a subclass of Reader Reader r = new FileReader('example1.txt'); // Read one character at a time from the file int data = r.read(); while (data != -1) { // Convert the int to char and print System.out.print((char)data); data = r.read(); } // Close the reader r.close(); } catch (Exception ex) { System.out.println('An error occurred: ' + ex.getMessage()); } } }
Produzione :
Nota: Per garantire che il programma venga eseguito correttamente, creare un file denominato esempio1.txt nella directory di lavoro.
Aggiungi il seguente contenuto al file oppure puoi aggiungere qualsiasi testo.
nuova riga in Python
Ciao benvenuto su Geeks for Geeks
Salvare il file ed eseguire il programma. Il programma leggerà e visualizzerà il contenuto dell'esempio1.txtcome uscita.
Costruttori della classe Reader
Esistono due costruttori utilizzati con Java Reader Class come indicato di seguito:
sottostringa in bash
- Lettore protetto(): Crea un nuovo lettore di flussi di caratteri le cui sezioni critiche verranno sincronizzate sul lettore stesso.
- Lettore protetto (blocco oggetto) : crea un nuovo lettore di flussi di caratteri le cui sezioni critiche verranno sincronizzate sull'oggetto specificato.
Metodi della classe Java Reader
| Metodo | Descrizione |
|---|---|
| vuoto astratto chiudi() | Chiude il flusso e rilascia risorse. |
| void mark(int readAheadLimit) | Contrassegna la posizione corrente nel flusso. |
| contrassegno booleanoSupportato() | Controlla se le operazioni di contrassegno/reimpostazione sono supportate. |
| int leggere() | Legge un singolo carattere dallo stream. Restituisce -1 se viene raggiunta la fine. |
| int read(char[] cbuf) | Legge più caratteri in un array. |
| abstract int read(char[] cbuf int off int len) | Legge una porzione dell'array a partire da offset off per la lunghezza len. |
| int read(destinazione CharBuffer) | Legge i caratteri in un oggetto CharBuffer. |
| ripristino nullo() | Reimposta il flusso alla posizione del contrassegno più recente. |
| salto lungo(lungo n) | Salta il numero di caratteri specificato. |
Esempio: Il programma seguente dimostra il funzionamento di varie funzionalità della classe Reader in Java.
Javaimport java.io.*; import java.nio.CharBuffer; import java.util.Arrays; public class Geeks { public static void main(String[] args) throws IOException { // Open a file reader Reader r = new FileReader('file.txt'); PrintStream out = System.out; // Create a character array and CharBuffer char[] buffer = new char[10]; CharBuffer charBuffer = CharBuffer.wrap(buffer); // Check if the reader supports marking if (r.markSupported()) { r.mark(100); // Mark the current position out.println('mark method is supported'); } // Skip 5 characters in the stream r.skip(5); // Check if the stream is ready to read if (r.ready()) { // Read 10 characters into the buffer r.read(buffer 0 10); out.println('Buffer after reading 10 chars: ' + Arrays.toString(buffer)); // Read characters into the CharBuffer r.read(charBuffer); out.println( 'CharBuffer contents: ' + Arrays.toString(charBuffer.array())); // Read a single character out.println('Next character: ' + (char)r.read()); } // Close the reader r.close(); } }
Produzione:
Implementazione di classi di lettori
Alcune delle implementazioni delle classi Reader in Java sono menzionate di seguito:
- BufferedReader
- CharArrayReader
- Lettore di filtri
- InputStreamReader
- PipedReader
- StringReader