2016年10月12日水曜日

Pathの機能(ファイルリーダ、ライタ)

みなさん。 こんばんは。

昨日はファイルの入出力について書きましたが、今日はファイルのリーダ、

ライタについて書いていきます。

まず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 件のコメント:

コメントを投稿