Classe Java PushbackReader
IL Classe PushbackReader in Java fa parte del java.io.pacchetto e viene utilizzato per leggere i caratteri da un flusso. Questa classe ci consente di reinserire i personaggi nello stream.
Caratteristiche della classe PushbackReader:
- Questa classe utilizza un buffer che ci consente di reinserire i caratteri nello stream.
- Questa lezione è ottima per leggere il testo e controllare i caratteri senza utilizzarli subito. Se il personaggio non è necessario può essere respinto.
Esempio:
Java
// Demonstrating the working // of PushbackReader import java.io.* ; public class Geeks { public static void main ( String [] args ) { String s = 'Hello World!' ; StringReader sr = new StringReader ( s ); // Create a PushbackReader with the StringReader PushbackReader pr = new PushbackReader ( sr ); try { // Read the first character int char1 = pr . read (); System . out . println ( 'Read character: ' + ( char ) char1 ); // Push this character back into the stream pr . unread ( char1 ); // Read the same character again (since we pushed it back) int char2 = pr . read (); System . out . println ( 'Read character again: ' + ( char ) char2 ); // Continue reading the next character int char3 = pr . read (); System . out . println ( 'Next character: ' + ( char ) char3 ); // Close the reader pr . close (); } catch ( IOException e ) { e . printStackTrace (); } } }
Produzione
Read character: H Read character again: H Next character: e
Dichiarazione della classe PushbackReader
La dichiarazione della classe PushbackReader è elencata di seguito:
la classe pubblica PushbackReader estende FilterReader
Tutte le interfacce implementate:
- Chiudibile: Questa interfaccia viene utilizzata per rilasciare risorse
- Chiusura automatica: Questa interfaccia consente la chiusura automatica in un'istruzione try-with-resources.
- Leggibile: Questa interfaccia viene utilizzata per leggere i dati dall'oggetto.
Costruttori in PushbackReader
Questa classe è composta da due costruttori con l'aiuto dei quali possiamo creare l'oggetto di questa classe in diversi modi. Di seguito sono riportati i costruttori disponibili in questa classe:
1. PushbackReader (spinta del lettore): Questo costruttore viene utilizzato per creare un nuovo PushbackReader con un buffer pushback predefinito.
Sintassi:
public PushbackReader(push del lettore)
Esempio:
Java // Demonstrating the working // of PushbackReader(Reader push) import java.io.* ; public class Geeks { public static void main ( String [] args ) { // String to be read String s = 'Hello World!' ; // Create a StringReader to read from the string StringReader sr = new StringReader ( s ); // Create a PushbackReader with the StringReader PushbackReader pr = new PushbackReader ( sr ); try { // Read and print characters int charRead ; while (( charRead = pr . read ()) != - 1 ) { System . out . print (( char ) charRead ); } // Close the PushbackReader pr . close (); } catch ( IOException e ) { e . printStackTrace (); } } }
Produzione
Hello World!
2. PushbackReader (dimensione int push del lettore): Questo costruttore ci consente di specificare la dimensione del buffer di pushback
Sintassi:
public PushbackReader(dimensione int push del lettore)
Esempio:
Java // Demonstrating the working // of PushbackReader(Reader push int size) import java.io.* ; public class Geeks { public static void main ( String [] args ) { // String to be read String s = 'Hello World!' ; // Create a StringReader to read from the string StringReader sr = new StringReader ( s ); // Create a PushbackReader with the StringReader // and a specified buffer size of 20 PushbackReader pr = new PushbackReader ( sr 20 ); try { // Read and print characters int charRead ; while (( charRead = pr . read ()) != - 1 ) { System . out . print (( char ) charRead ); } // Close the PushbackReader pr . close (); } catch ( IOException e ) { e . printStackTrace (); } } }
Produzione
Hello World!
Metodi Java PushbackReader
L'immagine seguente mostra i metodi della classe CharArrayWriter.
Ora discuteremo di ciascun metodo uno per uno in dettaglio:
1. leggere(): Questo metodo viene utilizzato per leggere un carattere alla volta dal flusso
Sintassi:
public int read()
- Parametro: Questo metodo non accetta alcun parametro.
- Tipo di reso: Questo metodo restituisce il carattere letto come intero oppure restituisce -1 quando viene raggiunta la fine dello stream.
2. leggi(char[] carray int offset int maxlen): Questo metodo viene utilizzato per leggere un pezzo di caratteri.
Sintassi:
public int read(char[] carray int offset int maxlen)
- Parametro: Questo metodo include tre parametri elencati di seguito
- char[] carray: È un array di caratteri in cui verranno letti i caratteri memorizzato.
- offset intero: È la posizione iniziale nell'array
- int maxlen: È il numero massimo di caratteri da leggere.
- Tipo di reso: Questo metodo restituisce il numero di caratteri letti
3. chiudi(): Questo metodo viene utilizzato per chiudere il lettore
Sintassi:
pubblico vuoto chiuso()
- Parametro: Questo metodo non accetta alcun parametro
- Tipo di reso: Questo metodo non restituisce nulla.
4. mark(int readAheadLimit): Questo metodo viene utilizzato per contrassegnare la posizione corrente nel flusso
Sintassi:
public void mark(int readAheadLimit)
- Parametro: Questo metodo include un parametro readAheadLimit che specifica il numero massimo di caratteri che possono essere letti prima che la posizione del contrassegno diventi non valida.
- Tipo di reso: Questo metodo non restituisce nulla
5. salta(lungo n): Questo metodo viene utilizzato per saltare un certo numero di caratteri.
Sintassi:
salto lungo pubblico (lungo n)
- Parametro: Questo metodo include un parametro lungo n che rappresenta il numero di caratteri da saltare nello stream.
- Tipo di reso: Questo metodo restituisce il numero di caratteri saltati
6. reimposta(): Questo metodo viene utilizzato per tornare alla posizione in cui è stato chiamato mark().
Sintassi:
ripristino del vuoto pubblico()
- Parametro: Questo metodo non accetta alcun parametro
- Tipo di reso: Questo metodo non restituisce nulla
7. markSupported(): Questo metodo indica se lo stream supporta o meno la marcatura
Sintassi:
segno booleano pubblicoSupportato()
- Parametro: Questo metodo non accetta alcun parametro
- Tipo di reso: Questo metodo restituisce false perché il contrassegno non è supportato.
8. pronto(): Questo metodo controlla se il flusso è pronto per la lettura o meno.
Sintassi:
booleano pubblico pronto()
- Parametro: Questo metodo non accetta alcun parametro
- Tipo di reso: Questo metodo restituisce true se lo stream è pronto.
9. non letto(int c): Questo metodo viene utilizzato per reinserire il carattere nel flusso.
Sintassi:
public void non letto(int c)
- Parametro: Questo metodo accetta un singolo parametro che è c che è il carattere da reinserire nel flusso.
- Tipo di reso: Questo metodo non restituisce nulla.
10. non letto(char[] carray): Questo metodo viene utilizzato per reinserire la matrice di caratteri nel flusso.
Sintassi:
public void non letto(char[] carray)
- Parametro: Questo metodo richiede che un array di caratteri venga reinserito nel flusso.
- Tipo di reso: Questo metodo non restituisce nulla.
Programma Java per dimostrare i metodi PushbackReader
Esempio:
Java // Demonstrating the working // of methods of PushbackReader class import java.io.* ; public class Geeks { public static void main ( String [] args ) throws IOException { String s = 'GeeksForGeeks' ; StringReader sr = new StringReader ( s ); PushbackReader pr = new PushbackReader ( sr ); // Check if the stream is ready System . out . println ( 'Is the stream ready? ' + pr . ready ()); // Use read() and skip() System . out . print ( 'Using read() and skip(): ' ); for ( int i = 0 ; i < 3 ; i ++ ) { char c = ( char ) pr . read (); // Read 1 char System . out . print ( c ); pr . skip ( 1 ); // Skip next char } char c = ( char ) pr . read (); // read next char after 3 skip cycles System . out . print ( c ); // Now read() with array – only 1 char expected char [] arr = new char [ 1 ] ; pr . read ( arr ); System . out . println ( 'nUsing read() with an array: ' + new String ( arr )); // Unread and read back pr . unread ( 'F' ); char nextChar = ( char ) pr . read (); System . out . println ( 'After unread() the next character: ' + nextChar ); // Close the reader pr . close (); } }
Produzione
Is the stream ready? true Using read() and skip(): Geso Using read() with an array: r After unread() the next character: FCrea quiz