java.nio.file.Filesでファイルを書いたり読んだり。

ふとjava.nio.file.Filesを試してみたくなったので、書いたり読んだりしてみました。
特に意味のないコードですが、せっかくなのでメモがてら晒しておきます。

doc
 https://docs.oracle.com/javase/jp/8/docs/api/java/nio/file/Files.html

import java.io.BufferedReader;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Stream;

public class OpenFileService {

    private String dir = "src/main/resources/sample";
    private String filename = "test.txt";

    void FilesSample() {

        try {
            // ディレクトリが存在するか確認、存在しない場合は作成
            if (!Files.isDirectory(Paths.get(dir))) {
                System.out.println("ディレクトリなし");
                Files.createDirectory(Paths.get(dir));
            } else {
                System.out.println("ディレクトリあり");
            }

            // ファイルが存在するかの確認、存在しない場合は作成
            if (!Files.exists(Paths.get(dir, filename))) {
                System.out.println("ファイルなし");
                Files.createFile(Paths.get(dir, filename));
            } else {
                System.out.println("ファイルあり");
            }

            List<String> listA = new ArrayList<>();
            listA.add("あいうえお");
            listA.add("かきくけこ");
            listA.add("さしすせそ");

            // ファイルに追記書き込み
            // Files.write(Paths.get(dir, filename), listA,
            // Charset.forName("UTF-8"), StandardOpenOption.APPEND);
            // ファイルに書き込み
            Files.write(Paths.get(dir, filename), listA,
                    Charset.forName("UTF-8"), StandardOpenOption.WRITE);

            // ファイルの全行読み込み。
            // 読み込み完了または例外が発生した場合、ファイルはクローズされるためクローズの記述不要。
            List<String> line = Files.readAllLines(Paths.get(dir, filename),
                    Charset.forName("UTF-8"));

            // 読み込んだ文字をコンソールに出力
            for (String s : line) {
                System.out.println(String.format("Files:%s", s));
            }

            String brLine;
            try (BufferedReader br = Files.newBufferedReader(
                    Paths.get(dir, filename), StandardCharsets.UTF_8)) {
                while ((brLine = br.readLine()) != null) {
                    System.out.println(String.format("brLine:%s", brLine));
                }
            }
            ;

            try (Stream<String> stream = Files.lines(Paths.get(dir, filename),
                    StandardCharsets.UTF_8)) {
                stream.forEach(streamLine -> {
                    System.out.println(String.format("Stream:%s", streamLine));
                });
            }

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

もう今の時代、あの長ったらしい書き方はしなくても良くなったんですね。