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 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í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í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