Java StringBufferInputStream osztály
A StringBufferInoutStream osztály Java nyelven lehetővé teszi, hogy egy karakterláncból bemeneti adatfolyamot hozzunk létre, hogy bájtokat tudjunk olvasni belőle. Csak az egyes karakterek alsó 8 bitjével működik. Nem tudja kezelni a karakterértékek teljes tartományát. Ennek az osztálynak a használata helyett a legjobb módszer a használata ByteArrayInputStream amely nem rendelkezik ezzel a korlátozással, a karakterértékek teljes tartományát ki tudja olvasni.
Jegyzet: A StringBufferInputStream az Oracle elavult.
A StringBufferInputStream osztály deklarációja
A StringBufferInputStream osztály nyilatkozata az alábbiakban található:
public class StringBufferInputStream kiterjeszti az InputStream-et
Konstruktorok a StringBufferInputStreamben
Ez az osztály egy konstruktorból áll, melynek segítségével létrehozhatunk egy objektumot ebből az osztályból.
1. StringBufferInputStream(String str): T a konstruktora karakterlánc-bemeneti adatfolyam létrehozására szolgál, amely egy megadott karakterláncból kiolvassa az adatokat.
Szintaxis:
StringBufferInputStream(String str)
Példa:
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 (); } } }
Kimenet
Hello World!
Java StringBufferStream metódusok
Az alábbi kép a PipedWriter osztály metódusait mutatja be.
Most az egyes módszereket részletesen tárgyaljuk:
1. olvasd (): Ez a módszer egy bájtnyi adat beolvasására szolgál a bemeneti adatfolyamból
Szintaxis:
publikus int read()
- Paraméter: Ez a módszer nem igényel paramétereket.
- Visszaküldés típusa: Ez a metódus az olvasott karaktert egész számként adja vissza, egyébként -1-et ad vissza, amikor a folyam végét elérjük.
2. read(byte[] buffer int offset int maxlen): Ezzel a módszerrel meghatározott számú karaktert olvashat ki egy pufferből.
Szintaxis:
public int read(byte[] buffer int offset int maxlen)
- Paraméter: Ez a módszer három paramétert igényel, amelyeket az alábbiakban felsorolunk:
- puffer: Ez egy tömb a karakterek tárolására
- eltolás: Ez a kiindulási pozíció, ahonnan a karaktert tároljuk
- maxlen: Ez az olvasható karakterek maximális száma.
- Visszaküldés típusa: Ez a metódus az olvasandó karakterek maximális számát adja vissza, ellenkező esetben -1-et ad vissza, amikor eléri a folyam végét.
3. reset(): Ezzel a módszerrel visszaállítjuk az adatfolyamot, és emiatt az olvasás elölről kezdődik.
Szintaxis:
public void reset()
- Paraméter: Ez a módszer nem igényel semmilyen paramétert.
- Visszaküldés típusa: Ez a módszer nem ad vissza semmit.
4. kihagyás (hosszú n): Ezzel a módszerrel átugorhat és figyelmen kívül hagyhat néhány karaktert a bemeneti adatfolyamban.
Szintaxis:
nyilvános hosszú kihagyás (hosszú n)
- Paraméter: Ez a módszer egyetlen n paramétert vesz igénybe, amely az átugorandó bájtok száma
- Visszaküldés típusa: Ez a metódus az átugrott bájtok tényleges számát adja vissza.
5. elérhető(): Ez a módszer megmondja, hogy hány karaktert kell még elolvasni a bemeneti adatfolyamban
Szintaxis:
nyilvános int elérhető()
- Paraméter: Ez a módszer nem vesz fel semmilyen paramétert
- Visszatérés típusa: Ez a metódus a bemeneti adatfolyamból kiolvasható karakterek számát adja vissza.
Java program, amely bemutatja a StringBufferInputStream osztálymetódusok működését
Most az alábbi példában látni fogjuk az összes módszer működését.
Példa:
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 ); } } }
Kimenet
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 GeeksKvíz létrehozása