Клас на Java PushbackReader
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 е посочена по-долу:
публичен клас 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 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): Този метод се използва за маркиране на текущата позиция в потока
Синтаксис:
публичен празен знак (int readAheadLimit)
- Параметър: Този метод включва един параметър readAheadLimit, който указва максималния брой знаци, които могат да бъдат прочетени, преди позицията на маркировката да стане невалидна.
- Тип връщане: Този метод не връща нищо
5. пропуснете (дълго n): Този метод се използва за пропускане на определен брой знаци.
Синтаксис:
публично дълго пропускане (дълго n)
- Параметър: Този метод включва един параметър long n, който е броят знаци за пропускане в потока.
- Тип връщане: Този метод връща броя на пропуснатите знаци
6. нулиране(): Този метод се използва за връщане към позицията, където е извикан mark().
Синтаксис:
публично невалидно нулиране ()
- Параметър: Този метод не приема никакъв параметър
- Тип връщане: Този метод не връща нищо
7. markSupported(): Този метод показва дали потокът поддържа маркиране или не
Синтаксис:
public boolean markSupported()
- Параметър: Този метод не приема никакъв параметър
- Тип връщане: Този метод връща false, защото маркирането не се поддържа.
8. готов(): Този метод проверява дали потокът е готов за четене или не.
Синтаксис:
публичен булев готов()
- Параметър: Този метод не приема никакъв параметър
- Тип връщане: Този метод връща true, ако потокът е готов.
9. непрочетено (int c): Този метод се използва за връщане на символ обратно в потока.
Синтаксис:
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Създаване на тест