Klasa Java PushbackReader
The Klasa PushbackReader u Javi je dio java.io.package i koristi se za čitanje znakova iz toka. Ova nam klasa omogućuje vraćanje znakova u tok.
Značajke klase PushbackReader:
- Ova klasa koristi međuspremnik koji nam omogućuje vraćanje znakova natrag u tok.
- Ova je klasa izvrsna za čitanje teksta i provjeru znakova bez da ih odmah koristite. Ako lik nije potreban, može se gurnuti natrag.
Primjer:
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 (); } } }
Izlaz
Read character: H Read character again: H Next character: e
Deklaracija klase PushbackReader
Deklaracija klase PushbackReader navedena je u nastavku:
javna klasa PushbackReader proširuje FilterReader
Sva implementirana sučelja:
- Može se zatvoriti: Ovo se sučelje koristi za oslobađanje resursa
- Automatsko zatvaranje: Ovo sučelje omogućuje automatsko zatvaranje u izjavi try-with-resources.
- Čitljiv: Ovo sučelje se koristi za čitanje podataka iz objekta.
Konstruktori u PushbackReaderu
Ova klasa se sastoji od dva konstruktora uz pomoć kojih objekt ove klase možemo kreirati na različite načine. Sljedeći su konstruktori dostupni u ovoj klasi:
1. PushbackReader(Reader push): Ovaj se konstruktor koristi za stvaranje novog PushbackReader-a sa zadanim povratnim međuspremnikom.
Sintaksa:
Primjer:
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 (); } } }
Izlaz
Hello World!
2. PushbackReader (Reader push int size): Ovaj nam konstruktor omogućuje da odredimo veličinu povratnog međuspremnika
Sintaksa:
public PushbackReader(Reader push int size)
Primjer:
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 (); } } }
Izlaz
Hello World!
Java PushbackReader metode
Slika ispod pokazuje metode klase CharArrayWriter.
Sada ćemo detaljno razmotriti svaku metodu jednu po jednu:
1. čitaj(): Ova se metoda koristi za čitanje jednog po jednog znaka iz toka
Sintaksa:
public int read()
- Parametar: Ova metoda ne uzima nikakve parametre.
- Vrsta povrata: Ova metoda vraća pročitani znak kao cijeli broj ili vraća -1 kada se dosegne kraj toka.
2. read(char[] carray int offset int maxlen): Ova se metoda koristi za čitanje dijela znakova.
Sintaksa:
public int read(char[] carray int offset int maxlen)
- Parametar: Ova metoda uključuje tri parametra koja su navedena u nastavku
- char[] prijenos: To je niz znakova u kojem će biti pročitani znakovi pohranjeno.
- int pomak: To je početna pozicija u nizu
- int maxlen: To je najveći broj znakova za čitanje.
- Vrsta povrata: Ova metoda vraća broj pročitanih znakova
3. zatvori(): Ova metoda se koristi za zatvaranje čitača
Sintaksa:
public void close()
- Parametar: Ova metoda ne uzima nikakve parametre
- Vrsta povrata: Ova metoda ne vraća ništa.
4. mark(int readAheadLimit): Ova metoda se koristi za označavanje trenutne pozicije u toku
Sintaksa:
javna nevažeća oznaka (int readAheadLimit)
- Parametar: Ova metoda uključuje jedan parametar readAheadLimit koji specificira najveći broj znakova koji se mogu pročitati prije nego što položaj oznake postane nevažeći.
- Vrsta povrata: Ova metoda ne vraća ništa
5. preskoči (dugo n): Ova metoda se koristi za preskakanje određenog broja znakova.
Sintaksa:
javno dugo preskakanje (dugo n)
- Parametar: Ova metoda uključuje jedan parametar dug n koji je broj znakova za preskakanje u toku.
- Vrsta povrata: Ova metoda vraća broj znakova koji je preskočen
6. reset(): Ova metoda se koristi za povratak na poziciju gdje je mark() pozvan.
Sintaksa:
javni void reset()
- Parametar: Ova metoda ne uzima nikakve parametre
- Vrsta povrata: Ova metoda ne vraća ništa
7. markSupported(): Ova metoda govori podržava li tok označavanje ili ne
Sintaksa:
javna booleova markaSupported()
- Parametar: Ova metoda ne uzima nikakve parametre
- Vrsta povrata: Ova metoda vraća false jer označavanje nije podržano.
8. spreman(): Ova metoda provjerava je li tok spreman za čitanje ili ne.
Sintaksa:
javni Booleov spreman()
- Parametar: Ova metoda ne uzima nikakve parametre
- Vrsta povrata: Ova metoda vraća true ako je tok spreman.
9. nepročitano(int c): Ova se metoda koristi za vraćanje znaka u tok.
Sintaksa:
javni void nepročitano(int c)
- Parametar: Ova metoda uzima jedan parametar koji je c, a to je znak koji se vraća u tok.
- Vrsta povrata: Ova metoda ne vraća ništa.
10. nepročitano (char[] carray): Ova se metoda koristi za vraćanje niza znakova natrag u tok.
Sintaksa:
javni void nepročitano(char[] carray)
- Parametar: Ova metoda uzima niz znakova koji se vraćaju u tok.
- Vrsta povrata: Ova metoda ne vraća ništa.
Java program za demonstraciju metoda PushbackReader
Primjer:
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 (); } }
Izlaz
Is the stream ready? true Using read() and skip(): Geso Using read() with an array: r After unread() the next character: FNapravi kviz