De PushbackReader-klasse op Java maakt deel uit van de java.io.pakket en wordt gebruikt voor het lezen van karakters uit een stream. Met deze klasse kunnen we karakters terug in de stream duwen.
Kenmerken van de PushbackReader-klasse:
- Deze klasse gebruikt een buffer waarmee we karakters terug in de stream kunnen duwen.
- Deze klasse is ideaal voor het lezen van tekst en het controleren van tekens zonder ze meteen te gebruiken. Als het personage niet nodig is, kan het worden teruggeduwd.
Voorbeeld:
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(); } } }
Uitvoer
Read character: H Read character again: H Next character: e
Verklaring van PushbackReader-klasse
De klasse Verklaring van PushbackReader wordt hieronder vermeld:
java toevoegen aan een array
public class PushbackReader breidt FilterReader uit
Alle geïmplementeerde interfaces:
- Afsluitbaar: Deze interface wordt gebruikt om bronnen vrij te geven
- Automatisch Sluitbaar: Deze interface maakt automatische afsluiting mogelijk in een try-with-resources-instructie.
- Leesbaar: Deze interface wordt gebruikt om gegevens van het object te lezen.
Constructeurs in PushbackReader
Deze klasse bestaat uit twee constructors met behulp waarvan we op verschillende manieren een object van deze klasse kunnen maken. De volgende constructors zijn beschikbaar in deze klasse:
1. PushbackReader(lezer-push): Deze constructor wordt gebruikt om een nieuwe PushbackReader te maken met een standaard pushback-buffer.
Syntaxis:
openbare PushbackReader (lezer-push)
Voorbeeld:
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(); } } }
Uitvoer
Hello World!
2. PushbackReader (Push int-grootte van de lezer): Met deze constructor kunnen we de grootte van de pushback-buffer specificeren
Syntaxis:
public PushbackReader (Push int-grootte van reader)
Voorbeeld:
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(); } } }
Uitvoer
Hello World!
java-parseerreeks naar int
Java PushbackReader-methoden
De onderstaande afbeelding demonstreert de methoden van de CharArrayWriter-klasse.

Nu gaan we elke methode één voor één in detail bespreken:
1. lees(): Deze methode wordt gebruikt om één teken tegelijk uit de stream te lezen
Syntaxis:
openbare int read()
- Parameter: Deze methode gebruikt geen enkele parameter.
- Retourtype: Deze methode retourneert het gelezen teken als een geheel getal of retourneert -1 wanneer het einde van de stream is bereikt.
2. lezen(char[] carray int offset int maxlen): Deze methode wordt gebruikt om een deel van de tekens te lezen.
Syntaxis:
public int read(char[] carray int offset int maxlen)
- Parameter: Deze methode omvat drie parameters die hieronder worden vermeld
- char[] carray: Het is een karakterarray waar gelezen karakters zullen zijn opgeslagen.
- int-offset: Het is de startpositie in de array
- int maxlen: Het is het maximale aantal te lezen tekens.
- Retourtype: Deze methode retourneert het aantal gelezen tekens
het is
3. sluiten(): Deze methode wordt gebruikt om de lezer te sluiten
Syntaxis:
openbare leegte close()
- Parameter: Deze methode gebruikt geen enkele parameter
- Retourtype: Deze methode levert niets op.
4. mark(int readAheadLimit): Deze methode wordt gebruikt om de huidige positie in de stream te markeren
Syntaxis:
openbare ongeldigheidsmarkering (int readAheadLimit)
- Parameter: Deze methode bevat één parameter readAheadLimit die het maximale aantal tekens specificeert dat kan worden gelezen voordat de markeringspositie ongeldig wordt.
- Retourtype: Deze methode levert niets op
5. overslaan(lange n): Deze methode wordt gebruikt om een bepaald aantal tekens over te slaan.
welke maanden zijn q1
Syntaxis:
openbare lange skip(lange n)
- Parameter: Deze methode bevat één parameter met de lengte n, het aantal tekens dat in de stroom moet worden overgeslagen.
- Retourtype: Deze methode retourneert het aantal tekens dat wordt overgeslagen
6. opnieuw instellen(): Deze methode wordt gebruikt om terug te gaan naar de positie waar mark() werd aangeroepen.
Syntaxis:
openbare ongeldige reset()
- Parameter: Deze methode gebruikt geen enkele parameter
- Retourtype: Deze methode levert niets op
7. markOndersteund(): Deze methode vertelt of de stream markering ondersteunt of niet
Syntaxis:
public boolean markSupported()
- Parameter: Deze methode gebruikt geen enkele parameter
- Retourtype: Deze methode retourneert false omdat markering niet wordt ondersteund.
8. klaar(): Deze methode controleert of de stream gereed is om te lezen of niet.
Syntaxis:
openbare boolean gereed()
- Parameter: Deze methode gebruikt geen enkele parameter
- Retourtype: Deze methode retourneert true als de stream gereed is.
9. ongelezen(int c): Deze methode wordt gebruikt om karakters terug in de stream te duwen.
Syntaxis:
openbare leegte ongelezen(int c)
- Parameter: Deze methode gebruikt een enkele parameter, namelijk c, het teken dat terug in de stream moet worden geduwd.
- Retourtype: Deze methode levert niets op.
10. ongelezen(char[] carray): Deze methode wordt gebruikt om een reeks tekens terug in de stream te duwen.
Syntaxis:
openbare leegte ongelezen(char[] carray)
- Parameter: Bij deze methode wordt een reeks tekens terug in de stream geduwd.
- Retourtype: Deze methode levert niets op.
Java-programma om de PushbackReader-methoden te demonstreren
Voorbeeld:
Sara Ali Khan leeftijdJava
// 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(); } }
Uitvoer
Is the stream ready? true Using read() and skip(): Geso Using read() with an array: r After unread() the next character: FQuiz maken