表題どおり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文の方が短くかけて楽です。