Java StringBufferInputStream клас
The Клас StringBufferInoutStream в Java ни позволява да създадем входен поток от низ, така че да можем да четем байтове от него. Работи само с долните 8 бита на всеки знак. Не може да се справи с пълния набор от стойности на символи. Вместо да използвате този клас, най-добрият подход е да използвате ByteArrayInputStream който няма това ограничение, той може да чете пълния набор от символни стойности.
Забележка: StringBufferInputStream е отхвърлен от Oracle.
Декларация на клас StringBufferInputStream
Декларацията на класа StringBufferInputStream е по-долу:
публичен клас StringBufferInputStream разширява InputStream
Конструктори в StringBufferInputStream
Този клас се състои от един конструктор, с помощта на който можем да създадем обект от този клас.
1. StringBufferInputStream(String str): T неговият конструктор се използва за създаване на низов входен поток за четене на данни от определен низ.
Синтаксис:
StringBufferInputStream(String str)
Пример:
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 (); } } }
Изход
Hello World!
Java StringBufferStream методи
Изображението по-долу демонстрира методите на класа PipedWriter.
Сега ще обсъдим подробно всеки метод един по един:
1. прочетете(): Този метод се използва за четене на байт данни от входния поток
Синтаксис:
public int read()
- Параметър: Този метод не приема никакъв параметър.
- Тип връщане: Този метод връща знака за четене като цяло число, в противен случай връща -1, когато се достигне краят на потока.
2. read(byte[] buffer int offset int maxlen): Този метод се използва за четене на определен брой знаци от буфер.
Синтаксис:
public int read(byte[] buffer int offset int maxlen)
- Параметър: Този метод приема три параметъра, които са изброени по-долу:
- буфер: Това е масив за съхраняване на знаци
- офсет: Това е началната позиция, откъдето да съхранявате характер
- макслен: Това е максималният брой знаци за четене.
- Тип връщане: Този метод връща максималния брой знаци за четене, в противен случай връща -1, когато се достигне краят на потока.
3. нулиране(): Този метод се използва за нулиране на потока и поради това четенето започва отначало.
Синтаксис:
публично невалидно нулиране ()
- Параметър: Този метод не приема никакъв параметър.
- Тип връщане: Този метод не връща нищо.
4. пропуснете (дълго n): Този метод се използва за пропускане и игнориране на някои знаци във входния поток.
Синтаксис:
публично дълго пропускане (дълго n)
- Параметър: Този метод приема един параметър n, който е броят байтове за пропускане
- Тип връщане: Този метод връща действителния брой пропуснати байтове.
5. наличен(): Този метод казва колко знака остават за четене във входния поток
Синтаксис:
public int available()
- Параметър: Този метод не приема никакъв параметър
- Тип на връщане: Този метод връща броя знаци, които могат да бъдат прочетени от входния поток.
Java програма, илюстрираща работата на методите на клас StringBufferInputStream
Сега в примера по-долу ще видим работата на всички методи.
Пример:
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 ); } } }
Изход
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Създаване на тест