logo

Java PushbackReader-klasse

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.

io.PushbackReader-klasse in Java' title=


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 leeftijd
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();  } } 

Uitvoer
Is the stream ready? true Using read() and skip(): Geso Using read() with an array: r After unread() the next character: F 
Quiz maken