El Classe PushbackReader en Java forma part del java.io.package i s'utilitza per llegir personatges d'un corrent. Aquesta classe ens permet tornar els personatges al flux.
Característiques de la classe PushbackReader:
- Aquesta classe utilitza una memòria intermèdia que ens permet tornar els personatges al flux.
- Aquesta classe és ideal per llegir text i comprovar caràcters sense utilitzar-los immediatament. Si el personatge no és necessari, es pot retrocedir.
Exemple:
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(); } } }
Sortida
Read character: H Read character again: H Next character: e
Declaració de la classe PushbackReader
La Declaració de la classe PushbackReader es mostra a continuació:
tipus de closca
PushbackReader de classe pública amplia FilterReader
Totes les interfícies implementades:
- Tancable: Aquesta interfície s'utilitza per alliberar recursos
- Tancament automàtic: Aquesta interfície permet el tancament automàtic en una declaració de prova amb recursos.
- Llegible: Aquesta interfície s'utilitza per llegir dades de l'objecte.
Constructors a PushbackReader
Aquesta classe consta de dos constructors amb l'ajuda dels quals podem crear objecte d'aquesta classe de diferents maneres. Els constructors disponibles en aquesta classe són els següents:
1. PushbackReader (Pushback Reader): Aquest constructor s'utilitza per crear un nou PushbackReader amb un buffer de pushback predeterminat.
Sintaxi:
Public PushbackReader (Pushback del lector)
Exemple:
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(); } } }
Sortida
Hello World!
2. PushbackReader (mida del lector push int): Aquest constructor ens permet especificar la mida del buffer pushback
Sintaxi:
public PushbackReader (mida del lector push int)
Exemple:
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(); } } }
Sortida
Hello World!
la cadena està buida
Mètodes Java PushbackReader
La imatge següent mostra els mètodes de la classe CharArrayWriter.

Ara parlarem de cada mètode un per un en detall:
1. llegir(): Aquest mètode s'utilitza per llegir un caràcter a la vegada del flux
Sintaxi:
public int read()
- Paràmetre: Aquest mètode no pren cap paràmetre.
- Tipus de retorn: Aquest mètode retorna el caràcter llegit com un nombre enter o retorna -1 quan s'arriba al final del flux.
2. llegir(char[] carray int offset int maxlen): Aquest mètode s'utilitza per llegir un tros de caràcters.
Sintaxi:
public int read(char[] carray int offset int maxlen)
- Paràmetre: Aquest mètode inclou tres paràmetres que s'enumeren a continuació
- char[] carray: És una matriu de caràcters on hi haurà caràcters llegits emmagatzemat.
- int offset: És la posició inicial de la matriu
- int maxlen: És el nombre màxim de caràcters per llegir.
- Tipus de retorn: Aquest mètode retorna el nombre de caràcters llegits
3. tancar(): Aquest mètode s'utilitza per tancar el lector
Sintaxi:
buit públic tancar()
- Paràmetre: Aquest mètode no pren cap paràmetre
- Tipus de retorn: Aquest mètode no retorna res.
4. marca (int readAheadLimit): Aquest mètode s'utilitza per marcar la posició actual al flux
Sintaxi:
1 de 1000,00
marca de buit públic (int readAheadLimit)
- Paràmetre: Aquest mètode inclou un paràmetre readAheadLimit que especifica el nombre màxim de caràcters que es poden llegir abans que la posició de la marca no sigui vàlida.
- Tipus de retorn: Aquest mètode no retorna res
5. saltar (n llarg): Aquest mètode s'utilitza per saltar cert nombre de caràcters.
Sintaxi:
salt llarg públic (n llarg)
- Paràmetre: Aquest mètode inclou un paràmetre llarg n que és el nombre de caràcters que cal saltar al flux.
- Tipus de retorn: Aquest mètode retorna el nombre de caràcters que s'han omès
6. restablir(): Aquest mètode s'utilitza per tornar a la posició on es va cridar mark().
hola món java
Sintaxi:
restabliment public void ()
- Paràmetre: Aquest mètode no pren cap paràmetre
- Tipus de retorn: Aquest mètode no retorna res
7. markSupported(): Aquest mètode indica si el flux admet el marcatge o no
Sintaxi:
public boolean markSupported ()
- Paràmetre: Aquest mètode no pren cap paràmetre
- Tipus de retorn: Aquest mètode retorna false perquè no s'admet el marcatge.
8. llest(): Aquest mètode comprova si el flux està llest per llegir-se o no.
Sintaxi:
boolean públic llest ()
- Paràmetre: Aquest mètode no pren cap paràmetre
- Tipus de retorn: Aquest mètode retorna true si el flux està preparat.
9. no llegit(int c): Aquest mètode s'utilitza per tornar a introduir el caràcter al flux.
Sintaxi:
python snake vs anaconda
public void no llegit(int c)
- Paràmetre: Aquest mètode pren un únic paràmetre que és c, que és el caràcter que s'ha de tornar al flux.
- Tipus de retorn: Aquest mètode no retorna res.
10. sense llegir(car[] carray):
Sintaxi:
public void no llegit(char[] carray)
- Paràmetre: Aquest mètode pren una matriu de caràcters per tornar a introduir-se al flux.
- Tipus de retorn: Aquest mètode no retorna res.
Programa Java per demostrar els mètodes PushbackReader
Exemple:
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(); } }
Sortida
Is the stream ready? true Using read() and skip(): Geso Using read() with an array: r After unread() the next character: FCrea un qüestionari