[Java]外部ファイルの読み込み方法

表題どおりJavaにおける外部ファイル(今回はテキストファイル)の読み込み方法について。
while文とfor文で回す方法を思いついたのでメモ。
※読み込んだ内容をVectorクラスに格納していますのであしからず。

サンプル①

Vector fileLines;
try {
	BufferedReader breader = new BufferedReader( new InputStreamReader( new FileInputStream( new File( filePath ) ) , "UTF-8" ) );
	String line = breader.readLine();
	while( line != null ) {
		fileLines.add(line);
		line = breader.readLine();
	}
	breader.close();
} catch (UnsupportedEncodingException e) {
	e.printStackTrace();
} catch (FileNotFoundException e) {
	e.printStackTrace();
} catch (IOException e) {
	e.printStackTrace();
}

サンプル②

Vector fileLines;
try {
	BufferedReader breader = new BufferedReader( new InputStreamReader( new FileInputStream( new File( filePath ) ) , "UTF-8" ) );
	String line = breader.readLine();
	for( String line = breader.readLine() ; line != null ; line = breader.readLine() ) {
		fileLines.add(line);
	}
	breader.close();
} catch (UnsupportedEncodingException e) {
	e.printStackTrace();
} catch (FileNotFoundException e) {
	e.printStackTrace();
} catch (IOException e) {
	e.printStackTrace();
}

解説

サンプル①はよく見かけるサンプルでので詳細は割愛します。
基本はBufferedReaderオブジェクトを生成した後、
関数[readLine()]で一行づつ読み込んでいます。

サンプル②は読み込み形式をforの書式で記載したもので
・初回時にStringオブジェクトを生成し初期値の代入
・ループ終了後に新たに一行を取得
・StringオブジェクトがNULLになるまで処理を続ける
の構成になっています。
処理速度は不明ですが個人的にはfor文の方が短くかけて楽です。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)