Java StringBufferInputStream クラス
の JavaのStringBufferInoutStreamクラス 文字列から入力ストリームを作成し、そこからバイトを読み取ることができます。各文字の下位 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 つずつ詳しく説明します。
1.読み取り(): このメソッドは、入力ストリームからデータのバイトを読み取るために使用されます。
構文:
パブリック int read()
- パラメータ: このメソッドはパラメータを取りません。
- 戻り値の型: このメソッドは、読み取った文字を整数として返します。それ以外の場合は、ストリームの終わりに達すると -1 を返します。
2. read(byte[]buffer int offset int maxlen): このメソッドは、バッファから特定の数の文字を読み取るために使用されます。
構文:
public int read(byte[]buffer int offset int maxlen)
- パラメータ: このメソッドは、以下に示す 3 つのパラメーターを受け取ります。
- バッファ: 文字を格納する配列です
- オフセット: 文字を格納する開始位置です
- マックスレン: 読み取れる最大文字数です。
- 戻り値の型: このメソッドは、読み取る文字の最大数を返します。それ以外の場合は、ストリームの終わりに達したときに -1 を返します。
3.リセット(): このメソッドはストリームをリセットするために使用され、このため読み取りは最初から始まります。
構文:
パブリックボイドリセット()
- パラメータ: このメソッドはパラメータを取りません。
- 戻り値の型: このメソッドは何も返しません。
4.スキップ(長いn): このメソッドは、入力ストリーム内の一部の文字をスキップして無視するために使用されます。
構文:
パブリックロングスキップ(long n)
- パラメータ: このメソッドは、スキップするバイト数である単一パラメータ n を受け取ります。
- 戻り値の型: このメソッドは、スキップされた実際のバイト数を返します。
5.利用可能(): このメソッドは、入力ストリームで読み取る文字が何文字残っているかを示します。
構文:
public int available()
- パラメータ: このメソッドはパラメータを必要としません
- 戻り値の型: このメソッドは、入力ストリームから読み取ることができる文字数を返します。
StringBufferInputStream クラス メソッドの動作を示す Java プログラム
以下の例では、すべてのメソッドの動作を確認します。
例:
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クイズの作成