Клас Java PushbackReader

Клас 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.

io.PushbackReader Клас у Java


Тепер ми докладніше обговоримо кожен метод окремо:

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  
Створіть вікторину