Java-io-bufferedinputstream-read-byte
提供:Dev Guides
Java.io.BufferedInputStream.read()メソッド
説明
- java.io.BufferedInputStream.read(byte [] b、int off、int len)メソッドは、指定されたオフセットから開始して、バイト入力ストリームからバイト配列に *len バイトを読み込みます。 このメソッドは、基になるストリームの* read()*メソッドを繰り返し呼び出します。
反復読み取りは、次の条件のいずれかが真になるまで続きます-
- 読み取られた len バイト。
- ファイルの終わりを示す -1 を返します。
- BufferedInputStreamの* available()*メソッドが0を返す場合
宣言
以下は、* java.io.BufferedInputStream.read(byte [] b、int off、int len)*メソッドの宣言です。
public int read(byte[] b, int off, int len)
パラメーター
- b -読み込まれるバイト配列。
- off -オフセットから保存を開始します。
- len -読み取るバイト数。
戻り値
このメソッドは値を返しません。
例外
*IOException* -I/Oエラーが発生した場合。
例
次の例は、java.io.BufferedInputStream.read(byte [] b、int off、int len)メソッドの使用方法を示しています。
package com.finddevguides;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.InputStream;
public class BufferedInputStreamDemo {
public static void main(String[] args) throws Exception {
InputStream inStream = null;
BufferedInputStream bis = null;
try {
//open input stream test.txt for reading purpose.
inStream = new FileInputStream("c:/test.txt");
//input stream is converted to buffered input stream
bis = new BufferedInputStream(inStream);
//read number of bytes available
int numByte = bis.available();
//byte array declared
byte[] buf = new byte[numByte];
//read byte into buf , starts at offset 2, 3 bytes to read
bis.read(buf, 2, 3);
//for each byte in buf
for (byte b : buf) {
System.out.println((char)b+": " + b);
}
} catch(Exception e) {
e.printStackTrace();
} finally {
//releases any system resources associated with the stream
if(inStream!=null)
inStream.close();
if(bis!=null)
bis.close();
}
}
}
テキストファイル* c:/test.txt*があり、次の内容があるとします。 このファイルは、サンプルプログラムの入力として使用されます-
ABCDE
上記のプログラムをコンパイルして実行すると、次の結果が生成されます-
: 0
: 0
A: 65
B: 66
C: 67