Trieda Java StringBufferInputStream

Trieda Java StringBufferInputStream

The Trieda StringBufferInoutStream v jazyku Java nám umožňuje vytvoriť vstupný tok z reťazca, aby sme z neho mohli čítať bajty. Funguje iba s dolnými 8 bitmi každého znaku. Nedokáže spracovať celý rozsah hodnôt znakov. Namiesto použitia tejto triedy je najlepším prístupom použiť ByteArrayInputStream ktorý toto obmedzenie nemá, môže čítať celý rozsah hodnôt znakov.

Poznámka: Spoločnosť Oracle ukončila podporu StringBufferInputStream.

Deklarácia triedy StringBufferInputStream

Deklarácia triedy StringBufferInputStream je uvedená nižšie:

verejná trieda StringBufferInputStream rozširuje InputStream

Konštruktory v StringBufferInputStream

Táto trieda pozostáva z jedného konštruktora, pomocou ktorého môžeme vytvoriť objekt tejto triedy.

1. StringBufferInputStream(String str): T jeho konštruktor sa používa na vytvorenie vstupného toku reťazca na čítanie údajov zo zadaného reťazca.

Syntax:

StringBufferInputStream(String str)

Príklad:

Java
   // Demonstrating the working    // of StringBufferInputStream(String str)   import     java.io.*  ;   public     class   Geeks  {      public     static     void     main  (  String  []     args  )     {          // Creating a String to be used with StringBufferInputStream      String     str     =     'Hello World!'  ;      // Creating StringBufferInputStream from the String      StringBufferInputStream     is     =     new     StringBufferInputStream  (  str  );      // Reading bytes from the StringBufferInputStream      int     data  ;      try     {      while     ((  data     =     is  .  read  ())     !=     -  1  )     {      // Print each byte as a character      System  .  out  .  print  ((  char  )     data  );      }      is  .  close  ();      }     catch     (  IOException     e  )     {      e  .  printStackTrace  ();      }      }   }   

Výstup
Hello World! 


Metódy Java StringBufferStream

Obrázok nižšie ukazuje metódy triedy PipedWriter.

Trieda io.StringBufferInputStream v jazyku Java


Teraz budeme diskutovať o každej metóde jeden po druhom podrobne:

1. čítaj(): Táto metóda sa používa na čítanie bajtu údajov zo vstupného toku

Syntax:

public int read()

  • Parameter: Táto metóda neberie žiadny parameter.
  • Typ návratu: Táto metóda vráti prečítaný znak ako celé číslo, inak po dosiahnutí konca toku vráti hodnotu -1.


2. read(byte[] buffer int offset int maxlen): Táto metóda sa používa na čítanie určitého počtu znakov z vyrovnávacej pamäte.

Syntax:

public int read(byte[] buffer int offset int maxlen)

  • Parameter: Táto metóda má tri parametre, ktoré sú uvedené nižšie:
    • vyrovnávacia pamäť: Je to pole na ukladanie znakov
    • posun: Je to východisková pozícia, z ktorej sa má ukladať postava
    • maxlen: Je to maximálny počet znakov na čítanie.
  • Typ návratu: Táto metóda vráti maximálny počet znakov na čítanie, inak vráti hodnotu -1, keď sa dosiahne koniec toku.


3. reset(): Táto metóda sa používa na resetovanie streamu a preto sa čítanie začína od začiatku.

Syntax:

public void reset()

  • Parameter: Táto metóda neberie žiadny parameter.
  • Typ návratu: Táto metóda nič nevracia.


4. preskočiť (dlhé n): Táto metóda sa používa na preskočenie a ignorovanie niektorých znakov vo vstupnom toku.

Syntax:

verejné dlhé preskočenie (dlhé n)

  • Parameter: Táto metóda má jeden parameter n, čo je počet bajtov, ktoré sa majú preskočiť
  • Typ návratu: Táto metóda vráti skutočný počet vynechaných bajtov.


5. dostupné(): Táto metóda hovorí, koľko znakov zostáva na čítanie vo vstupnom toku

Syntax:

public int available()

  • Parameter: Táto metóda neberie žiadny parameter
  • Typ návratu: Táto metóda vráti počet znakov, ktoré je možné prečítať zo vstupného toku.


Java program ilustrujúci fungovanie metód triedy StringBufferInputStream

Teraz v nižšie uvedenom príklade uvidíme fungovanie všetkých metód.

Príklad:

Java
   // Demonstrating the working of    // read() read(byte[] buffer int offset int maxlen)   // reset() skip(long n) available()   import     java.io.*  ;   public     class   Geeks     {      public     static     void     main  (  String  []     args  )     throws     IOException     {          String     s1     =     'Hello Geeks'  ;      String     s2     =     'GeeksForGeeks'  ;      StringBufferInputStream     b1     =     new     StringBufferInputStream  (  s1  );      StringBufferInputStream     b2     =     new     StringBufferInputStream  (  s2  );      // available()      System  .  out  .  println  (  'Use of available() 1: '     +     b1  .  available  ());      int     a  ;      System  .  out  .  println  (  'Use of read() method:'  );      while     ((  a     =     b1  .  read  ())     !=     -  1  )     {      char     c     =     (  char  )     a  ;      System  .  out  .  println  (  c  );      // skip()      b1  .  skip  (  1  );      }      System  .  out  .  println  (  'Use of available() 2: '     +     b2  .  available  ());      byte  []     byteBuffer     =     new     byte  [  15  ]  ;      b2  .  read  (  byteBuffer       1       2  );      int     b  ;      System  .  out  .  print  (  'Remaining characters after partial read: '  );      while     ((  b     =     b2  .  read  ())     !=     -  1  )     {      System  .  out  .  print  ((  char  )     b  );      }      // reset()      b1  .  reset  ();      System  .  out  .  print  (  'nAfter reset(): '  );      int     i  ;      while     ((  i     =     b1  .  read  ())     !=     -  1  )     {      System  .  out  .  print  ((  char  )     i  );      }      }   }   

Výstup
Use of available() 1: 11 Use of read() method: H l o G e s Use of available() 2: 13 Remaining characters after partial read: eksForGeeks After reset(): Hello Geeks 
Vytvoriť kvíz