Klasa Java PushbackReader

Klasa Java PushbackReader

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:

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! 


Java PushbackReader metode

Slika ispod pokazuje metode klase CharArrayWriter.

io.PushbackReader Klasa u Javi


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.

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

  • 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.

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: F  
Napravi kviz