Клас 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
Усі реалізовані інтерфейси:
- Закривається: Цей інтерфейс використовується для звільнення ресурсів
- Автозакривається: Цей інтерфейс дозволяє автоматично закривати оператор try-with-resources.
- Читається: Цей інтерфейс використовується для читання даних з об’єкта.
Конструктори в PushbackReader
Цей клас складається з двох конструкторів, за допомогою яких ми можемо створювати об'єкт цього класу різними способами. У цьому класі доступні такі конструктори:
1. PushbackReader(Reader push): Цей конструктор використовується для створення нового PushbackReader із буфером зворотного відкликання за замовчуванням.
Синтаксис:
public 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 offset: Це початкова позиція в масиві
- int maxlen: Це максимальна кількість символів для читання.
- Тип повернення: Цей метод повертає кількість прочитаних символів
3. close(): Цей спосіб використовується для закриття читалки
Синтаксис:
public void close()
- Параметр: Цей метод не приймає жодних параметрів
- Тип повернення: Цей метод нічого не повертає.
4. mark(int readAheadLimit): Цей метод використовується для позначення поточної позиції в потоці
Синтаксис:
публічна недійсна позначка (int readAheadLimit)
- Параметр: Цей метод містить один параметр readAheadLimit, який визначає максимальну кількість символів, які можна прочитати до того, як позиція позначки стане недійсною.
- Тип повернення: Цей метод нічого не повертає
5. пропустити (довгий n): Цей метод використовується для пропуску певної кількості символів.
Синтаксис:
публічний довгий пропуск (довгий n)
- Параметр: Цей метод містить один параметр long n, який є кількістю символів, які потрібно пропустити в потоці.
- Тип повернення: Цей метод повертає кількість пропущених символів
6. reset(): Цей метод використовується для повернення до місця виклику mark().
Синтаксис:
public void reset()
- Параметр: Цей метод не приймає жодних параметрів
- Тип повернення: Цей метод нічого не повертає
7. markSupported(): Цей метод повідомляє, чи підтримує потік маркування чи ні
Синтаксис:
public boolean markSupported()
- Параметр: Цей метод не приймає жодних параметрів
- Тип повернення: Цей метод повертає false, оскільки маркування не підтримується.
8. готовий(): Цей метод перевіряє, чи готовий потік до читання чи ні.
Синтаксис:
public boolean ready()
- Параметр: Цей метод не приймає жодних параметрів
- Тип повернення: Цей метод повертає true, якщо потік готовий.
9. непрочитане (int c): Цей метод використовується для повернення символу в потік.
Синтаксис:
public void unread(int c)
- Параметр: Цей метод приймає єдиний параметр, який є c, який є символом, який потрібно відправити назад у потік.
- Тип повернення: Цей метод нічого не повертає.
10. unread(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Створіть вікторину