Classe de leitor Java

Classe de leitor Java

A classe Reader em Java é uma classe abstrata para ler fluxos de caracteres. Suas subclasses ( Leitor de arquivos BufferedReade ) fornecem implementações com read() sendo o método principal para ler caracteres.

  • Ele implementa a interface Readable que define o método read(CharBuffer cb).
  • Ele implementa a interface Closeable que define o método close() para liberar recursos.
leitor_Leitor

Declaração de Classe do Leitor

A declaração da classe Reader é fornecida abaixo:

classe abstrata pública Reader implementa Readable Closeable

Exemplo: Leia um arquivo de texto caractere por caractere usando a classe Reader.

Java
   import     java.io.*  ;   public     class   Geeks     {      public     static     void     main  (  String  []     args  )      {      try     {          // Create a FileReader object which is a subclass of Reader      Reader     r     =     new     FileReader  (  'example1.txt'  );      // Read one character at a time from the file      int     data     =     r  .  read  ();      while     (  data     !=     -  1  )     {          // Convert the int to char and print      System  .  out  .  print  ((  char  )  data  );      data     =     r  .  read  ();      }      // Close the reader      r  .  close  ();      }      catch     (  Exception     ex  )     {      System  .  out  .  println  (  'An error occurred: '     +     ex  .  getMessage  ());      }      }   }   

Saída :

Saídasaída

Observação: Para garantir que o programa seja executado corretamente, crie um arquivo chamado example1.txt no diretório de trabalho.

Adicione o seguinte conteúdo ao arquivo ou você pode adicionar qualquer texto.

Olá, bem-vindo ao Geeks para Geeks

Salve o arquivo e execute o programa. O programa irá ler e exibir o conteúdo do exemplo1 .txt como saída.

Construtores da classe Reader

Existem dois construtores usados ​​com Java Reader Class conforme mencionado abaixo:

  • Leitor protegido(): Cria um novo leitor de fluxo de caracteres cujas seções críticas serão sincronizadas no próprio leitor.
  • leitor protegido (bloqueio de objeto) : Cria um novo leitor de fluxo de caracteres cujas seções críticas serão sincronizadas no objeto fornecido.

Métodos da classe Java Reader

Método Descrição
fechamento vazio abstrato() Fecha o fluxo e libera recursos.
marca nula (int readAheadLimit) Marca a posição atual no fluxo.
marca booleanaSuportada() Verifica se as operações de marcação/redefinição são suportadas.
leitura interna() Lê um único caractere do fluxo. Retorna -1 se o fim for alcançado.
leitura int(char[] cbuf) Lê vários caracteres em uma matriz.
abstrato int read(char[] cbuf int off int len) Lê uma parte da matriz começando no deslocamento para o comprimento len.
leitura int (alvo CharBuffer) Lê caracteres em um objeto CharBuffer.
anular redefinição() Redefine o fluxo para a posição de marca mais recente.
salto longo (n longo) Ignora o número especificado de caracteres.

Exemplo: O programa abaixo demonstra o funcionamento de diversas funcionalidades da classe Reader em Java.

Java
   import     java.io.*  ;   import     java.nio.CharBuffer  ;   import     java.util.Arrays  ;   public     class   Geeks     {      public     static     void     main  (  String  []     args  )      throws     IOException      {      // Open a file reader      Reader     r     =     new     FileReader  (  'file.txt'  );      PrintStream     out     =     System  .  out  ;      // Create a character array and CharBuffer      char  []     buffer     =     new     char  [  10  ]  ;      CharBuffer     charBuffer     =     CharBuffer  .  wrap  (  buffer  );      // Check if the reader supports marking      if     (  r  .  markSupported  ())     {      r  .  mark  (  100  );     // Mark the current position      out  .  println  (  'mark method is supported'  );      }      // Skip 5 characters in the stream      r  .  skip  (  5  );      // Check if the stream is ready to read      if     (  r  .  ready  ())     {      // Read 10 characters into the buffer      r  .  read  (  buffer       0       10  );      out  .  println  (  'Buffer after reading 10 chars: '      +     Arrays  .  toString  (  buffer  ));      // Read characters into the CharBuffer      r  .  read  (  charBuffer  );      out  .  println  (      'CharBuffer contents: '      +     Arrays  .  toString  (  charBuffer  .  array  ()));      // Read a single character      out  .  println  (  'Next character: '      +     (  char  )  r  .  read  ());      }      // Close the reader      r  .  close  ();      }   }   

Saída:

SaídaSaída

Implementação de classes de leitor

Algumas das implementações de classes Reader em Java são mencionadas abaixo:

  • Leitor Buffered
  • CharArrayReader
  • Leitor de Filtro
  • Leitor de entradaStream
  • Leitor canalizado
  • StringReader
Criar questionário