De PushbackReader klass i Java är en del av java.io.paket och används för att läsa tecken från en ström. Den här klassen låter oss trycka tillbaka karaktärer i strömmen.
Funktioner i PushbackReader Class:
- Den här klassen använder en buffert som gör att vi kan trycka tillbaka tecken i strömmen.
- Den här klassen är utmärkt för att läsa text och kontrollera tecken utan att använda dem direkt. Om karaktären inte behövs kan den skjutas tillbaka.
Exempel:
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(); } } }
Produktion
Read character: H Read character again: H Next character: e
Deklaration av PushbackReader-klass
Declaration of PushbackReader-klassen listas nedan:
tkinter-knappen
public class PushbackReader utökar FilterReader
Alla implementerade gränssnitt:
- Stängbar: Detta gränssnitt används för att frigöra resurser
- Autostängbar: Det här gränssnittet tillåter automatisk stängning i ett försök-med-resurser-uttalande.
- Läsbar: Detta gränssnitt används för att läsa data från objektet.
Konstruktörer i PushbackReader
Denna klass består av två konstruktorer med hjälp av vilka vi kan skapa objekt av denna klass på olika sätt. Följande är de konstruktörer som finns tillgängliga i den här klassen:
1. PushbackReader(Reader push): Denna konstruktor används för att skapa en ny PushbackReader med en standard pushback-buffert.
Syntax:
public PushbackReader(Reader push)
Exempel:
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(); } } }
Produktion
Hello World!
2. PushbackReader (Reader push int storlek): Denna konstruktor låter oss specificera storleken på pushback-bufferten
Syntax:
public PushbackReader(Reader push int storlek)
Exempel:
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(); } } }
Produktion
Hello World!
konvertera objekt till sträng
Java PushbackReader-metoder
Bilden nedan visar metoderna i klassen CharArrayWriter.

Nu ska vi diskutera varje metod en efter en i detalj:
1. läs(): Denna metod används för att läsa ett tecken i taget från strömmen
Syntax:
public int read()
- Parameter: Denna metod tar inte någon parameter.
- Returtyp: Denna metod returnerar tecknet som läses som ett heltal eller returnerar -1 när slutet av strömmen nås.
2. read(char[] carray int offset int maxlen): Denna metod används för att läsa en del tecken.
Syntax:
public int read(char[] carray int offset int maxlen)
- Parameter: Denna metod inkluderar tre parametrar som listas nedan
- char[] carray: Det är en teckenuppsättning där lästa tecken kommer att finnas lagras.
- int offset: Det är startpositionen i arrayen
- int maxlen: Det är det maximala antalet tecken att läsa.
- Returtyp: Denna metod returnerar antalet lästa tecken
linjär sökning i java
3. stäng(): Denna metod används för att stänga läsaren
Syntax:
public void close()
- Parameter: Denna metod tar inte någon parameter
- Returtyp: Denna metod returnerar ingenting.
4. mark(int readAheadLimit): Denna metod används för att markera den aktuella positionen i strömmen
Syntax:
public void mark (int readAheadLimit)
- Parameter: Denna metod inkluderar en parameter readAheadLimit som anger det maximala antalet tecken som kan läsas innan markeringspositionen blir ogiltig.
- Returtyp: Denna metod returnerar ingenting
5. hoppa över (långt n): Denna metod används för att hoppa över ett visst antal tecken.
Syntax:
offentligt långt hoppa (långt n)
- Parameter: Denna metod inkluderar en parameter lång n som är antalet tecken att hoppa över i strömmen.
- Returtyp: Denna metod returnerar antalet tecken som hoppas över
6. återställ(): Denna metod används för att gå tillbaka till positionen där mark() anropades.
jämförelse av lejon och tiger
Syntax:
public void reset()
- Parameter: Denna metod tar inte någon parameter
- Returtyp: Denna metod returnerar ingenting
7. markSupported(): Denna metod talar om om strömmen stöder märkning eller inte
Syntax:
public boolean markSupported()
- Parameter: Denna metod tar inte någon parameter
- Returtyp: Den här metoden returnerar false eftersom markering inte stöds.
8. redo(): Denna metod kontrollerar om strömmen är redo att läsas eller inte.
Syntax:
public boolean ready()
- Parameter: Denna metod tar inte någon parameter
- Returtyp: Denna metod returnerar sant om strömmen är klar.
9. oläst(int c): Denna metod används för att trycka tillbaka tecken i strömmen.
Syntax:
public void oläst(int c)
- Parameter: Denna metod tar en enda parameter som är c som är tecknet som ska tryckas tillbaka in i strömmen.
- Returtyp: Denna metod returnerar ingenting.
10. oläst(char[] carray): Den här metoden används för att skjuta en rad tecken tillbaka i strömmen.
Syntax:
public void oläst(char[] carray)
- Parameter: Den här metoden kräver att en rad tecken skjuts tillbaka in i strömmen.
- Returtyp: Denna metod returnerar ingenting.
Java-program för att demonstrera PushbackReader-metoderna
Exempel:
söndra kartaJava
// 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(); } }
Produktion
Is the stream ready? true Using read() and skip(): Geso Using read() with an array: r After unread() the next character: FSkapa frågesport