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.
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 GeeksVytvoriť kvíz