初心者向けのJava講座です。一緒にJavaを勉強しませんか?
はじめてのJava入門初心者向けのJava講座 |
BufferedReaderクラス
BufferedReaderクラスもBufferedWriterクラスと同じくバッファに入れて処理を高速化するクラスです。
InputStreamReaderクラスでは一文字読み込んで処理をするのに対しBufferedReaderクラスでは、
まとめて読み取ることができます。
そのため非常に読み取り効率が上がります。
ではBufferedReaderクラスのコンストラクタを見てみます。
コンストラクタ |
説明 |
BufferedReader(Reader in) | デフォルトサイズのバッファでバッファリングされた、文字型入力ストリームを作成 |
BufferedReader(Reader in,int i) | 指定されたサイズのバッファでバッファリングされた、文字型入力ストリームを作成 |
主なメソッド
戻り値 |
メソッド |
概要 |
void | close() | ストリームを閉じる(終了) |
void | mark(int i) | ストリームの現在位置にマークを設定 |
int | read() | 単一の文字を読み込む |
long | skip(long l) | 文字をスキップ |
boolean | markSupported() | このストリームが、実行するmark()操作をサポートする場合に真を返す |
String | readLine() | 一行のテキストを読み込む |
boolean | ready() | ストリームが読み込み可能なら真を返します。 |
void | reset() | ストリームを最も新しいマーク位置にリセットする |
サンプルプログラム(BufferedReaderSample.java)
//import宣言
import java.io.*; class BufferedReaderSample{ public static void main(String args[]){ try{ //FileReaderオブジェクトの生成
FileReader fr = new FileReader(args[0]); //BufferedReaderオブジェクトの生成 BufferedReader br = new BufferedReader(fr); String str;
//ファイルから一行だけ読み込み str = br.readLine(); System.out.println(str); //ストリームを閉じます br.close(); }catch(IOException e){ System.out.println("Exception :" + e); }
} }
プログラムをコピーする場合すべて選択をクリックしてください。
Sponsored link
コンパイル・実行してみます。
今回実行の際はtest2.txtを読み込みます。
プログラムの説明をします。
BufferedReaderクラスもやはりjava.ioパッケージに属しているのでimport宣言が必要です。
まず読み込むファイルのオブジェクトを作成します。
引数にはコンストラクタで指定されたファイル名が設定されます。
ここではコマンドライン引数を指定しています。
次にBufferedReaderクラスのインスタンス生成を行います。
引数にFileReaderオブジェクトを指定してやることで読み込みをバッファを利用して効率よく行うことが出来ます。
次にファイルの読み込みですが、ここではプログラムをわかりやすくするためにreadLine()を利用して一行だけ読み込ませています。
読み込みが終了するとclose()メソッドでストリームを閉じます。
やはりファイルが読み込まれなかった場合などのために例外処理を行わなければいけません。
ここでは、ファイル名には先ほどBuffereWriterで作成したtest2.txtを指定しています。
サンプルプログラム(BufferedReaderSample1.java)
//import宣言 import java.io.*; class BufferedReaderSample1{ public static void main(String args[]){
try{ //BufferedReaderオブジェクトの生成 BufferedReader br = new BufferedReader(new FileReader(args[0])); String str;
//while文を利用してファイルを読み込み
while((str = br.readLine()) != null){ System.out.println(str); } //ストリームを閉じます br.close(); }catch(IOException e){ System.out.println("Exception :" + e); } } }
プログラムをコピーする場合すべて選択をクリックしてください。
Sponsored link
コンパイル・実行してみます。
今度はwhile文を利用してファイル内のデータを全て呼び出しています。
つまりwhile文の条件式には str = br.readLine()) !=nullで読み込むデータがなくなれば条件式にはfalseが返ってきます。
つまりこれでファイル内のデータを全て読み込む設定になります。
ここでもtest2.txtを指定しているのではじめてのJava入門が50回出力されています。
画面上ではスペースの関係上7回しか表示されていませんが実際プログラムを実行してみたらわかるので試してください。