技術のメモ箱

Java/ファイル入出力

ファイル入出力

Path.ofはJava 11で導入された。Java 8ではPaths.getを使う。


ファイル存在確認

var p = Path.of("test.txt");
if (Files.exists(p)) {
    String s = Files.readString(p);
}

ファイル一覧取得

var fileList = Files.list(Path.of("."));
fileList.map(Path::getFileName).forEach(System.out::println);

ファイル出力

public static void main(String[] args) throws IOException {
    var massage = "test\nmessage";
    var p = Path.of("test.txt");
    Files.writeString(p, massage);
}

ファイル入力

public static void main(String[] args) throws IOException {
    try {
        var p = Path.of("test.txt");
        String s = Files.readString(p);
        System.out.println(s);
    } catch (NoSuchFileException e) {
        System.out.println("ファイルが見つかりません:" + e.getFile());
    }
}

入出力

try-with-resouces

tryの()にリソースを書くと、try文のブロックを出たときにリソースを自動でcloseする。
リソースはjava.io.Closeable または java.lang.AutoCloseable を実装しているオブジェクトのこと。
リソースはカンマ区切りで複数書ける。閉じ忘れがなくなる。JavaSE7から対応。

static String readFirstLineFromFile(String path) throws IOException {
  try (BufferedReader br = new BufferedReader(new FileReader(path))) {
    return br.readLine();
  }
}
pagetop