Java PushbackReader -luokka

Java PushbackReader -luokka

The PushbackReader-luokka Javassa on osa java.io.paketti ja sitä käytetään hahmojen lukemiseen virrasta. Tällä kurssilla voimme työntää hahmoja takaisin streamiin.

PushbackReader-luokan ominaisuudet:

  • Tämä luokka käyttää puskuria, jonka avulla voimme työntää merkkejä takaisin streamiin.
  • Tämä luokka sopii erinomaisesti tekstin lukemiseen ja merkkien tarkistamiseen käyttämättä niitä heti. Jos hahmoa ei tarvita, se voidaan työntää taaksepäin.

Esimerkki:

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

Lähtö
Read character: H Read character again: H Next character: e  


PushbackReader-luokan ilmoitus

PushbackReader-luokan ilmoitus on lueteltu alla:

public class PushbackReader laajentaa FilterReaderia

Kaikki toteutetut käyttöliittymät:

  • Suljettava: Tätä käyttöliittymää käytetään resurssien vapauttamiseen
  • Automaattinen sulkeminen: Tämä käyttöliittymä mahdollistaa automaattisen sulkemisen try-with-sources -lausekkeessa.
  • Luettavissa: Tätä käyttöliittymää käytetään tietojen lukemiseen objektista.

PushbackReaderin rakentajat

Tämä luokka koostuu kahdesta konstruktorista, joiden avulla voimme luoda tämän luokan objektia eri tavoin. Tässä luokassa saatavilla olevat rakentajat:

1. PushbackReader (Reader push): Tätä rakentajaa käytetään uuden PushbackReaderin luomiseen oletuspuskurilla.

Syntaksi:

julkinen PushbackReader (Reader push)

Esimerkki:

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

Lähtö
Hello World! 


2. PushbackReader(Reader push int size): Tämän rakentajan avulla voimme määrittää pushback-puskurin koon

Syntaksi:

julkinen PushbackReader (Reader push in koko)

Esimerkki:

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

Lähtö
Hello World! 


Java PushbackReader -menetelmät

Alla oleva kuva esittää CharArrayWriter-luokan menetelmät.

io.PushbackReader-luokka Javassa


Nyt aiomme keskustella jokaisesta menetelmästä yksitellen yksityiskohtaisesti:

1. lue(): Tätä menetelmää käytetään lukemaan yksi merkki kerrallaan virrasta

Syntaksi:

julkinen int read()

  • Parametri: Tämä menetelmä ei ota mitään parametreja.
  • Palautustyyppi: Tämä menetelmä palauttaa luetun merkin kokonaislukuna tai palauttaa -1, kun virran loppu saavutetaan.


2. read(char[] carray int offset int maxlen): Tätä menetelmää käytetään merkkien osan lukemiseen.

Syntaksi:

public int read(char[] carray int offset int maxlen)

  • Parametri: Tämä menetelmä sisältää kolme parametria, jotka on lueteltu alla
    • char[] carray: Se on merkkijono, jossa luetut merkit ovat tallennettu.
    • int offset: Se on lähtöpaikka taulukossa
    • int maxlen: Se on luettavien merkkien enimmäismäärä.
  • Palautustyyppi: Tämä menetelmä palauttaa luettujen merkkien määrän


3. sulje(): Tätä menetelmää käytetään lukijan sulkemiseen

Syntaksi:

julkinen void sulje()

  • Parametri: Tämä menetelmä ei ota mitään parametreja
  • Palautustyyppi: Tämä menetelmä ei palauta mitään.


4. mark(int readAheadLimit): Tätä menetelmää käytetään nykyisen sijainnin merkitsemiseen streamissa

Syntaksi:

julkinen void merkki (int readAheadLimit)

  • Parametri: Tämä menetelmä sisältää yhden parametrin readAheadLimit, joka määrittää, kuinka monta merkkiä voidaan lukea ennen kuin merkin paikka ei kelpaa.
  • Palautustyyppi: Tämä menetelmä ei palauta mitään


5. ohita (pitkä n): Tätä menetelmää käytetään ohittamaan tietty määrä merkkejä.

Syntaksi:

julkinen pitkä ohitus (pitkä n)

  • Parametri: Tämä menetelmä sisältää yhden parametrin, jonka pituus on n, joka on streamissa ohitettavien merkkien määrä.
  • Palautustyyppi: Tämä menetelmä palauttaa ohitettujen merkkien määrän


6. reset(): Tätä menetelmää käytetään palaamaan kohtaan, jossa mark() kutsuttiin.

Syntaksi:

public void reset()

  • Parametri: Tämä menetelmä ei ota mitään parametreja
  • Palautustyyppi: Tämä menetelmä ei palauta mitään


7. markSupported(): Tämä menetelmä kertoo, tukeeko stream merkitsemistä vai ei

Syntaksi:

julkinen boolean markSupported()

  • Parametri: Tämä menetelmä ei ota mitään parametreja
  • Palautustyyppi: Tämä menetelmä palauttaa epätosi, koska merkitsemistä ei tueta.


8. valmis(): Tämä menetelmä tarkistaa, onko virta valmis luettavaksi vai ei.

Syntaksi:

julkinen boolean valmis()

  • Parametri: Tämä menetelmä ei ota mitään parametreja
  • Palautustyyppi: Tämä menetelmä palauttaa tosi, jos stream on valmis.


9. lukematon(int c): Tätä menetelmää käytetään työntämään merkki takaisin streamiin.

Syntaksi:

public void lukematon (int c)

  • Parametri: Tämä menetelmä ottaa yhden parametrin, joka on c, joka on merkki, joka työnnetään takaisin virtaan.
  • Palautustyyppi: Tämä menetelmä ei palauta mitään.


10. lukematon (char[] carray): Tätä menetelmää käytetään merkkijonon työntämiseen takaisin streamiin.

Syntaksi:

public void lukematon (char[] carray)

  • Parametri: Tämä menetelmä vaatii joukon merkkejä, jotka työnnetään takaisin streamiin.
  • Palautustyyppi: Tämä menetelmä ei palauta mitään.


Java-ohjelma PushbackReader-menetelmien esittelyyn

Esimerkki:

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

Lähtö
Is the stream ready? true Using read() and skip(): Geso Using read() with an array: r After unread() the next character: F  
Luo tietokilpailu