Classe Java PushbackReader

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.

io.PushbackReader Classe a Java


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: F  
Crea un qüestionari