Klasa PushbackReadera Java

Klasa PushbackReadera Java

The Klasa PushbackReader w Javie jest częścią pakiet java.io i służy do odczytywania znaków ze strumienia. Ta klasa pozwala nam wpychać znaki z powrotem do strumienia.

Cechy klasy PushbackReader:

  • Ta klasa używa bufora, który pozwala nam wypychać znaki z powrotem do strumienia.
  • Ta klasa doskonale nadaje się do czytania tekstu i sprawdzania znaków bez ich natychmiastowego używania. Jeśli postać nie jest potrzebna, można ją odsunąć.

Przykład:

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  ();      }      }   }   

Wyjście
Read character: H Read character again: H Next character: e  


Deklaracja klasy PushbackReader

Deklaracja klasy PushbackReader jest wymieniona poniżej:

klasa publiczna PushbackReader rozszerza FilterReader

Wszystkie zaimplementowane interfejsy:

  • Zamykane: Ten interfejs służy do zwalniania zasobów
  • Automatyczne zamykanie: Ten interfejs umożliwia automatyczne zamykanie instrukcji try-with-resources.
  • Czytelny: Interfejs ten służy do odczytu danych z obiektu.

Konstruktory w PushbackReader

Klasa ta składa się z dwóch konstruktorów, za pomocą których możemy na różne sposoby stworzyć obiekt tej klasy. Poniżej znajdują się konstruktory dostępne w tej klasie:

1. PushbackReader (wypychanie czytnika): Ten konstruktor służy do tworzenia nowego PushbackReadera z domyślnym buforem pushback.

Składnia:

Przykład:

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  ();      }      }   }   

Wyjście
Hello World! 


2. PushbackReader (rozmiar push czytnika): Konstruktor ten pozwala nam określić rozmiar bufora pushback

Składnia:

publiczny PushbackReader (rozmiar push czytnika)

Przykład:

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  ();      }      }   }   

Wyjście
Hello World! 


Metody PushbackReadera w Javie

Poniższy obrazek przedstawia metody klasy CharArrayWriter.

Klasa io.PushbackReader w Javie


Teraz omówimy szczegółowo każdą metodę:

1. przeczytaj(): Ta metoda służy do odczytywania jednego znaku ze strumienia na raz

Składnia:

publiczny odczyt()

  • Parametr: Ta metoda nie przyjmuje żadnego parametru.
  • Typ zwrotu: Ta metoda zwraca znak odczytany jako liczba całkowita lub zwraca -1 po osiągnięciu końca strumienia.


2. read(char[] carray int offset int maxlen): Ta metoda służy do odczytywania fragmentu znaków.

Składnia:

public int read(char[] carray int offset int maxlen)

  • Parametr: Metoda ta obejmuje trzy parametry wymienione poniżej
    • char[] carry: Jest to tablica znaków, w której będą odczytywane znaki przechowywane.
    • przesunięcie całkowite: Jest to pozycja początkowa w tablicy
    • maks. int.: Jest to maksymalna liczba znaków do odczytania.
  • Typ zwrotu: Ta metoda zwraca liczbę odczytanych znaków


3. zamknij(): Metoda ta służy do zamykania czytnika

Składnia:

publiczna pustka zamknij()

  • Parametr: Ta metoda nie przyjmuje żadnego parametru
  • Typ zwrotu: Ta metoda nic nie zwraca.


4. mark(int readAheadLimit): Metoda ta służy do zaznaczenia aktualnej pozycji w strumieniu

Składnia:

publiczny znak nieważności (int readAheadLimit)

  • Parametr: Metoda ta zawiera jeden parametr readAheadLimit, który określa maksymalną liczbę znaków, które można odczytać, zanim pozycja znacznika stanie się nieważna.
  • Typ zwrotu: Ta metoda nic nie zwraca


5. pomiń(długie n): Ta metoda służy do pomijania określonej liczby znaków.

Składnia:

publiczny długi skok (long n)

  • Parametr: Ta metoda zawiera jeden parametr long n, który oznacza liczbę znaków do pominięcia w strumieniu.
  • Typ zwrotu: Ta metoda zwraca liczbę pominiętych znaków


6. reset(): Ta metoda służy do powrotu do pozycji, w której wywołano mark().

Składnia:

publiczny reset pustego()

  • Parametr: Ta metoda nie przyjmuje żadnego parametru
  • Typ zwrotu: Ta metoda nic nie zwraca


7. markSupported(): Ta metoda informuje, czy strumień obsługuje znakowanie, czy nie

Składnia:

publiczny znak logicznySupported()

  • Parametr: Ta metoda nie przyjmuje żadnego parametru
  • Typ zwrotu: Ta metoda zwraca wartość false, ponieważ znakowanie nie jest obsługiwane.


8. gotowy(): Ta metoda sprawdza, czy strumień jest gotowy do odczytu, czy nie.

Składnia:

gotowe publiczne wartości logiczne()

  • Parametr: Ta metoda nie przyjmuje żadnego parametru
  • Typ zwrotu: Ta metoda zwraca wartość true, jeśli strumień jest gotowy.


9. nieprzeczytane(int c): Ta metoda służy do wypychania znaku z powrotem do strumienia.

Składnia:

public void nieprzeczytane (int c)

  • Parametr: Ta metoda przyjmuje pojedynczy parametr, czyli c, który jest znakiem, który ma zostać wypchnięty z powrotem do strumienia.
  • Typ zwrotu: Ta metoda nic nie zwraca.


10. nieprzeczytany(char[] carray): Ta metoda służy do wypychania tablicy znaków z powrotem do strumienia.

Składnia:

public void nieprzeczytane (char[] carray)

  • Parametr: Ta metoda pobiera tablicę znaków, które mają zostać wypchnięte z powrotem do strumienia.
  • Typ zwrotu: Ta metoda nic nie zwraca.


Program Java do demonstracji metod PushbackReader

Przykład:

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  ();      }   }   

Wyjście
Is the stream ready? true Using read() and skip(): Geso Using read() with an array: r After unread() the next character: F  
Utwórz quiz