昨日はファイルの入出力について書きましたが、今日はファイルのリーダ、
ライタについて書いていきます。
まずJavaSE6までのリーダ、ライタについて見ていき、次に最新の手法について見ていきましょう。
// ファイルの内容を文字列で読み込む
try(BufferedReader reader = new BufferedReader(
new InputStreamReader(new FileInputStream("sample.txt"), "UTF-8"))) {
String line = null;
// ファイルの内容を1行ずつ読み込んでコンソールに出力する
while((line = reader.readLine()) != null) {
System.out.prinltn(line);
}
}
// ファイルに文字列を書き出す
try(BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(new FileOutputStream("test.txt"), "UTF-8"))) {
// ファイルに文字列を書き出す
writer.write("ファイルに文字列を出力");
// ファウルに改行を出力
writer.newLine();
}
次にJavaSE7/8でのリーダについて見ていきましょう。
JavaSE7/8でのリーダの取得はFiles.newBufferedReader()メソッドを使います。
// 読み込むファイル
Path path = Paths.get(filename);
// newBufferedReaderメソッドを使用して、BufferedReaderオブジェクトを取得
try(BufferedReader reader = Files.newBufferedReader(path)) {
List<String> list = new ArrayList<>();
for(;;) {
String line = reader.readLine();
if(line != null) {
list.add(line);
} else {
break;
}
}
} catch (IOException ex) {
// 例外処理
}
感想としてファイルの読み込み書き込みとも、JavaSE 7/8 で記述量が若干減ったかなという
印象です。
まだJavaSE7/8でのライブラリ対応がされていない場合は従来のJavaSE6でのリーダ、ライタ
を使うと良いでしょう。
それではまた!
人気ブログランキングへ
0 件のコメント:
コメントを投稿