The Клас PushbackReader в Java е част от java.io.package и се използва за четене на символи от поток. Този клас ни позволява да връщаме символи обратно в потока.
Характеристики на класа PushbackReader:
- Този клас използва буфер, който ни позволява да връщаме символи обратно в потока.
- Този клас е чудесен за четене на текст и проверка на знаци, без да ги използвате веднага. Ако знакът не е необходим, той може да бъде върнат назад.
Пример:
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(); } } }
Изход
Read character: H Read character again: H Next character: e
Декларация на клас PushbackReader
Декларацията на класа PushbackReader е посочена по-долу:
python os listdir
публичен клас PushbackReader разширява FilterReader
Всички внедрени интерфейси:
- Затваряне: Този интерфейс се използва за освобождаване на ресурси
- Автоматично затваряне: Този интерфейс позволява автоматично затваряне в оператор за опит с ресурси.
- Четимо: Този интерфейс се използва за четене на данни от обекта.
Конструктори в PushbackReader
Този клас се състои от два конструктора, с помощта на които можем да създадем обект от този клас по различни начини. Следните са наличните конструктори в този клас:
1. PushbackReader (Reader push): Този конструктор се използва за създаване на нов PushbackReader с обратен буфер по подразбиране.
Синтаксис:
публичен PushbackReader (Reader push)
Пример:
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(); } } }
Изход
Hello World!
2. PushbackReader (Reader push int size): Този конструктор ни позволява да определим размера на буфера за обратно изтласкване
Синтаксис:
public PushbackReader (Reader push int size)
Пример:
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(); } } }
Изход
Hello World!
характер.сравнете java
Методи на Java PushbackReader
Изображението по-долу демонстрира методите на класа CharArrayWriter.

Сега ще обсъдим подробно всеки метод един по един:
1. прочетете(): Този метод се използва за четене на символ по един от потока
Синтаксис:
public int read()
- Параметър: Този метод не приема никакъв параметър.
- Тип връщане: Този метод връща прочетения знак като цяло число или връща -1, когато се достигне краят на потока.
2. read(char[] carray int offset int maxlen): Този метод се използва за четене на част от знаци.
Синтаксис:
public int read(char[] carray int offset int maxlen)
- Параметър: Този метод включва три параметъра, които са изброени по-долу
- char[] carray: Това е масив от знаци, където ще бъдат прочетените знаци съхранени.
- int отместване: Това е началната позиция в масива
- int maxlen: Това е максималният брой знаци за четене.
- Тип връщане: Този метод връща броя на прочетените знаци
3. затвори (): Този метод се използва за затваряне на четеца
Синтаксис:
публично невалидно затваряне()
- Параметър: Този метод не приема никакъв параметър
- Тип връщане: Този метод не връща нищо.
4. маркирайте (int readAheadLimit): Този метод се използва за маркиране на текущата позиция в потока
Синтаксис:
сортиране на вмъкване в java
публичен празен знак (int readAheadLimit)
- Параметър: Този метод включва един параметър readAheadLimit, който указва максималния брой знаци, които могат да бъдат прочетени, преди позицията на маркировката да стане невалидна.
- Тип връщане: Този метод не връща нищо
5. пропуснете (дълго n): Този метод се използва за пропускане на определен брой знаци.
Синтаксис:
публично дълго пропускане (дълго n)
- Параметър: Този метод включва един параметър long n, който е броят знаци за пропускане в потока.
- Тип връщане: Този метод връща броя на пропуснатите знаци
6. нулиране(): Този метод се използва за връщане към позицията, където е извикан mark().
Синтаксис:
публично невалидно нулиране ()
- Параметър: Този метод не приема никакъв параметър
- Тип връщане: Този метод не връща нищо
7. markSupported(): Този метод показва дали потокът поддържа маркиране или не
int към преобразуване на низ в java
Синтаксис:
public boolean markSupported()
- Параметър: Този метод не приема никакъв параметър
- Тип връщане: Този метод връща false, защото маркирането не се поддържа.
8. готов(): Този метод проверява дали потокът е готов за четене или не.
Синтаксис:
публичен булев готов()
- Параметър: Този метод не приема никакъв параметър
- Тип връщане: Този метод връща true, ако потокът е готов.
9. непрочетено (int c): Този метод се използва за връщане на символ обратно в потока.
Синтаксис:
команда за разтягане на autocad
public void unread(int c)
- Параметър: Този метод приема един параметър, който е c, който е символът, който трябва да бъде върнат обратно в потока.
- Тип връщане: Този метод не връща нищо.
10. непрочетено (char[] carray): Този метод се използва за избутване на масив от символи обратно в потока.
Синтаксис:
public void unread(char[] carray)
- Параметър: Този метод взема масив от символи, които да бъдат върнати обратно в потока.
- Тип връщане: Този метод не връща нищо.
Java програма за демонстриране на методите PushbackReader
Пример:
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(); } }
Изход
Is the stream ready? true Using read() and skip(): Geso Using read() with an array: r After unread() the next character: FСъздаване на тест