Classe Java PushbackReader
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ó:
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!
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:
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().
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:
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