Classe Java PushbackReader

Classe Java PushbackReader

O Classe PushbackReader em Java faz parte do java.io.package e é usado para ler caracteres de um fluxo. Esta classe nos permite colocar os personagens de volta no fluxo.

Recursos da classe PushbackReader:

  • Esta classe usa um buffer que nos permite enviar caracteres de volta ao fluxo.
  • Esta aula é ótima para ler textos e verificar caracteres sem usá-los imediatamente. Se o personagem não for necessário, ele pode ser adiado.

Exemplo:

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  ();      }      }   }   

Saída
Read character: H Read character again: H Next character: e  


Declaração da classe PushbackReader

A declaração da classe PushbackReader está listada abaixo:

classe pública PushbackReader estende FilterReader

Todas as interfaces implementadas:

  • Fechável: Esta interface é usada para liberar recursos
  • Fechamento automático: Esta interface permite o fechamento automático em uma instrução try-with-resources.
  • Legível: Esta interface é usada para ler dados do objeto.

Construtores em PushbackReader

Esta classe consiste em dois construtores com a ajuda dos quais podemos criar objetos desta classe de diferentes maneiras. A seguir estão os construtores disponíveis nesta classe:

1. PushbackReader(Leitor push): Este construtor é usado para criar um novo PushbackReader com um buffer de pushback padrão.

Sintaxe:

PushbackReader público (push do leitor)

Exemplo:

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  ();      }      }   }   

Saída
Hello World! 


2. PushbackReader (tamanho interno do leitor): Este construtor nos permite especificar o tamanho do buffer de pushback

Sintaxe:

public PushbackReader (tamanho int do push do leitor)

Exemplo:

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  ();      }      }   }   

Saída
Hello World! 


Métodos Java PushbackReader

A imagem abaixo demonstra os métodos da classe CharArrayWriter.

Classe io.PushbackReader em Java


Agora vamos discutir cada método, um por um, em detalhes:

1. ler(): Este método é usado para ler um caractere por vez do fluxo

Sintaxe:

leitura int pública()

  • Parâmetro: Este método não aceita nenhum parâmetro.
  • Tipo de retorno: Este método retorna o caractere lido como um número inteiro ou retorna -1 quando o final do fluxo é atingido.


2. leia(char[] carray int offset int maxlen): Este método é usado para ler um bloco de caracteres.

Sintaxe:

leitura int pública (char[] carray int offset int maxlen)

  • Parâmetro: Este método inclui três parâmetros listados abaixo
    • char[]carray: É uma matriz de caracteres onde os caracteres lidos serão armazenado.
    • deslocamento interno: É a posição inicial na matriz
    • int maxlen: É o número máximo de caracteres a serem lidos.
  • Tipo de retorno: Este método retorna o número de caracteres lidos


3. fechar(): Este método é usado para fechar o leitor

Sintaxe:

fechamento de vazio público()

  • Parâmetro: Este método não aceita nenhum parâmetro
  • Tipo de retorno: Este método não retorna nada.


4. marca(int readAheadLimit): Este método é usado para marcar a posição atual no fluxo

Sintaxe:

marca de vazio público (int readAheadLimit)

  • Parâmetro: Este método inclui um parâmetro readAheadLimit que especifica o número máximo de caracteres que podem ser lidos antes que a posição da marca se torne inválida.
  • Tipo de retorno: Este método não retorna nada


5. pular (n longo): Este método é usado para pular um certo número de caracteres.

Sintaxe:

salto longo público (n longo)

  • Parâmetro: Este método inclui um parâmetro longo n que é o número de caracteres a serem ignorados no fluxo.
  • Tipo de retorno: Este método retorna o número de caracteres que foram ignorados


6. redefinir (): Este método é usado para voltar à posição onde mark() foi chamado.

Sintaxe:

redefinição de vazio público ()

  • Parâmetro: Este método não aceita nenhum parâmetro
  • Tipo de retorno: Este método não retorna nada


7. marcaSuportada(): Este método informa se o stream suporta marcação ou não

Sintaxe:

marca booleana públicaSupported()

  • Parâmetro: Este método não aceita nenhum parâmetro
  • Tipo de retorno: Este método retorna falso porque a marcação não é suportada.


8. pronto(): Este método verifica se o fluxo está pronto para leitura ou não.

Sintaxe:

booleano público pronto()

  • Parâmetro: Este método não aceita nenhum parâmetro
  • Tipo de retorno: Este método retorna verdadeiro se o fluxo estiver pronto.


9. não lido (int c): Este método é usado para enviar o personagem de volta ao fluxo.

Sintaxe:

público vazio não lido (int c)

  • Parâmetro: Este método usa um único parâmetro que é c, que é o caractere a ser enviado de volta ao fluxo.
  • Tipo de retorno: Este método não retorna nada.


10. não lido(char[] carray): Este método é usado para enviar uma matriz de caracteres de volta ao fluxo.

Sintaxe:

public void não lido(char[] carray)

  • Parâmetro: Este método leva uma matriz de caracteres para ser enviada de volta ao fluxo.
  • Tipo de retorno: Este método não retorna nada.


Programa Java para demonstrar os métodos PushbackReader

Exemplo:

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  ();      }   }   

Saída
Is the stream ready? true Using read() and skip(): Geso Using read() with an array: r After unread() the next character: F  
Criar questionário