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:
cordas em c
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!
o que é envio de diretório
Métodos Java PushbackReader
A imagem abaixo demonstra os métodos da classe CharArrayWriter.

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.
mesas em látex
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)
caracteres de escape java
- 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.
o que é conectado automaticamente em java
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: FCriar questionário