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:
java apstraktna klasa
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!
pretvorba niza u int u Javi
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.
usporedite s nizovima u Javi
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()
booleov niz java
- 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.
terminal kali linux
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