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.
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: FUtwórz quiz