Třída Java StringBufferInputStream
The Třída StringBufferInoutStream v Javě nám umožňuje vytvořit vstupní proud z řetězce, abychom z něj mohli číst bajty. Funguje pouze se spodními 8 bity každého znaku. Nezvládne celý rozsah hodnot znaků. Místo použití této třídy je nejlepším přístupem použít ByteArrayInputStream který toto omezení nemá, může číst celý rozsah hodnot znaků.
Poznámka: Oracle StringBufferInputStream nepodporuje.
Deklarace třídy StringBufferInputStream
Deklarace třídy StringBufferInputStream je níže:
public class StringBufferInputStream rozšiřuje InputStream
Konstruktory v StringBufferInputStream
Tato třída se skládá z jednoho konstruktoru, s jehož pomocí můžeme vytvořit objekt této třídy.
1. StringBufferInputStream(String str): T jeho konstruktor se používá k vytvoření řetězcového vstupního proudu pro čtení dat ze zadaného řetězce.
Syntax:
StringBufferInputStream(String str)
Pří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!
Metody Java StringBufferStream
Obrázek níže ukazuje metody třídy PipedWriter.
Nyní budeme diskutovat o každé metodě jednu po druhé podrobně:
1. číst(): Tato metoda se používá ke čtení bajtu dat ze vstupního toku
Syntax:
public int read()
- Parametr: Tato metoda nebere žádný parametr.
- Typ vrácení: Tato metoda vrací přečtený znak jako celé číslo, jinak vrací -1, když je dosaženo konce proudu.
2. read(byte[] buffer int offset int maxlen): Tato metoda se používá ke čtení určitého počtu znaků z vyrovnávací paměti.
Syntax:
public int read(byte[] buffer int offset int maxlen)
- Parametr: Tato metoda používá tři parametry, které jsou uvedeny níže:
- vyrovnávací paměť: Je to pole pro ukládání znaků
- offset: Je to výchozí pozice pro uložení postavy
- maxlen: Je to maximální počet znaků ke čtení.
- Typ vrácení: Tato metoda vrací maximální počet znaků ke čtení, jinak vrací -1, když je dosaženo konce proudu.
3. reset(): Tato metoda se používá k resetování streamu, a proto začíná čtení od začátku.
Syntax:
public void reset()
- Parametr: Tato metoda nebere žádný parametr.
- Typ vrácení: Tato metoda nic nevrací.
4. přeskočit (dlouhé n): Tato metoda se používá k přeskočení a ignorování některých znaků ve vstupním proudu.
Syntax:
veřejné dlouhé přeskočení (dlouhé n)
- Parametr: Tato metoda bere jeden parametr n, což je počet bajtů, které se mají přeskočit
- Typ vrácení: Tato metoda vrací skutečný počet vynechaných bajtů.
5. k dispozici(): Tato metoda říká, kolik znaků zbývá přečíst ve vstupním proudu
Syntax:
public int available()
- Parametr: Tato metoda nebere žádný parametr
- Return Type: Tato metoda vrací počet znaků, které lze přečíst ze vstupního toku.
Program Java ilustrující fungování metod třídy StringBufferInputStream
Nyní v níže uvedeném příkladu uvidíme fungování všech metod.
Pří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 GeeksVytvořit kvíz