2016年10月13日木曜日

Pathiに対する操作(簡易的な読み書きの方法)

みなさん。 こんばんは。

前回はファイルの入出力やリーダ、ライタについて述べてきましたが、

これらに加えて、Filesクラスには簡易的な読み込みメソッド及び書き込みメソッドが

提供されています。

それでは具体的に見ていきましょう。

// ファイルの内容をバイト配列で読み込む
Path path = Paths.get("test.txt");
byte[] bytes = Files.readAllBytes(path);

たった2行でバイト配列読み込みを記述出来ましたね!次にファイルの内容を文字列で読み込み

// ファイルの内容を文字列で読み込む
Path path = Paths.get("test.txt");
// ファイルの内容を1行ごとの List として読み込み
List<String> lines = Files.readAllLines(path, StandardCharsets.UTF_8);
// 読み込んだファイルの内容をコンソールに出力
for(String line: lines) {
    System.out.println(line);
}

Files.readAllLines()メソッドの第2引数では文字コードをjava.nio.charset.Charsetで指定できますが

第2引数を省略した場合はUTF-8で読み込まれます。

次に書き込みを行うメソッドを見てみましょう。

書き込みは Files.write() メソッドで、Pathが示すファイルにバイト配列または文字列を

書き出すことができます。

ファイルが存在しない場合は作成され、すでに存在する場合は上書きされます。

// バイト配列または文字列をファイルに書き出す
Path path = Paths.get("test.txt");
// バイト配列をファイルに書き出す
byte[] bytes = ・・・
Files.write(path, bytes);
// 文字列をファイルに書き出す
List<String> lines = ・・・
Files.write(path, lines, Charset.forName("UTF-8"));

なお、Files.write()メソッドの引数には java.nio.files.OpenOption を指定でき、

ファイルの書き込みモードを指定できます。

たとえば以下のようにすると、ファイルを上書きするのではなく、追記で書き込みが行われます。

Files.write(path, lines, Charset.forName("UTF-8"), StandardOpenOption.APPEND);

今日はこのへんにしておきましょう。

それでは、また!

人気ブログランキングへ

0 件のコメント:

コメントを投稿