ストリームを効率的に読み込み - BufferedInputStream基本的な使い方
2009/03/04 18:10Update
バッファ機能を持つ入力ストリームBufferedInputStreamの基本的な使い方についてサンプルから学びます。
BufferedInputStreamクラス概要
ファイルやネットワークなどのストリームからデータを取得するには、FileInputStreamなどの入力ストリーム(InputStream)クラスを用いることが多い。しかし、これらのクラスのread()が呼び出された度にファイルや・ネットワークにアクセスするため、効率がよくありません。
BufferedInputStreamは、バッファ機能を持つ入力ストリームで、一度のアクセスで多くのデータをバッファに格納することによって、処理が早まることができます。
java.io.InputStream
∟java.io.FilterInputStream
∟java.io.BufferedInputStream
コンストラクタ:
BufferedInputStream(InputStream in)
BufferedInputStream(InputStream in, int size)
パラメータ in:入力ストリーム
パラメータ size:バッファサイズ
バッファサイズを指定しなかった場合、デフォルトで「8192」になります。
主たるメソッド:
int available()
int read()
int read(byte[] b, int off, int len)
※メソッド的には、定義や使い方はInputStreamと全く一緒。
BufferedInputStream使い方(サンプル)
TestBufferedInputStream.javaimport java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class TestBufferedInputStream {
/**
* BufferedInputStreamの使い方 サンプル
*/
public static void main(String[] args) {
try {
//1)InputStreamの取得
FileInputStream fis = new FileInputStream("c:/test.txt");
//2)BufferedInputStreamオブジェクト生成
BufferedInputStream bis = new BufferedInputStream(fis);
byte []fbytes = new byte[1024];
while ((bis.read(fbytes)) >= 0) { //3)read()で読み込み
System.out.print(new String(fbytes));
}
bis.close(); //4)ストリームを閉じる
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}
参考資料
java.io.BufferedInputStream API仕様
Sponsored Link
Comments
- Relative Articles
- Java言語の基礎 - javacコマンドによるコンパイル - (2008/10/10 17:58)
- Javaでpropertiesファイルの読み書き処理(1) - (2009/01/24 16:36)
- URLから画像を取得してファイルに書き込み 例 - (2009/01/22 16:40)
- リソースファイルの国際化対応 - java.util.ResourceBundle - (2009/01/24 22:41)
- Javaで指定するフォルダにあるすべてのファイルをソートするには - (2009/01/24 23:27)
- FileReader/FileWriterでテキストファイルの読み書き - (2009/01/28 17:57)
- Jakarta Commons NETによるFTP処理(FTPClient) - (2009/01/28 19:40)
- DTDファイル処理 - DTDParser - Java DTD パーサー - (2009/01/30 17:48)
- Apache Commons Digesterを使おう - サンプルから学ぶXML文書の読み込み - (2009/02/09 17:09)
- リソースからInputStreamの取得するための汎用的なサンプル - (2009/02/16 17:29)