1
1

More than 1 year has passed since last update.

【JavaGold】StandardOpenOption

Posted at

概要

Java NIO.2(New I/O)パッケージでファイルの書き込み時に指定するオプションを定義する列挙型(Enum)である。
ファイルの書き込み時に特定のオプションを指定することでファイル操作の動作を制御することができる。

主な定数

  • READ:読み取りモードでファイルを開く。
    ファイルを読み取るために使用する。

  • WRITE:書き込みモードでファイルを開く。
    ファイルに書き込むために使用する。
    既存のファイルを開く場合、既存の内容を上書きする。

  • APPEND:追記モードでファイルを開く。

  • CREATE:ファイルが存在しない場合に、新しいファイルを作成する。

  • CREATE_NEW:ファイルが存在しない場合に新しいファイルを作成する。
    既にファイルが存在する場合は例外がスローされる。

  • DELETE_ON_CLOSE: ファイルを閉じる際に、ファイルを自動的に削除する。

  • TRUNCATE_EXISTING: ファイルをオープンする際に、既存の内容を削除する。

  • SYNC:書き込んだデータをディスクに同期させる。

  • DSYNC:書き込んだデータをディスクに同期させるが、ファイルのメタデータは同期しない。

import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
import java.util.Arrays;
import java.util.List;

public class FileOpenExample {
    public static void main(String[] args) {
        // ファイルへの書き込み用データ
        List<String> lines = Arrays.asList("Hello, World!", "This is an example.");

        // ファイルパスを指定
        Path filePath = Paths.get("example.txt");

        // ファイルを書き込みモードでオープン
        try {
            // ファイルが存在しない場合は新規作成し、既存の内容は削除する
            Files.write(filePath, lines, StandardCharsets.UTF_8, StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING);

            System.out.println("ファイルに書き込みました。");
        } catch (IOException e) {
            e.printStackTrace();
        }

        // ファイルを読み込みモードでオープン
        try {
            List<String> readLines = Files.readAllLines(filePath, StandardCharsets.UTF_8);
            for (String line : readLines) {
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

この例では、まずFiles.write()メソッドを使用してexample.txtという名前のファイルを作成し、StandardOpenOption.CREATEStandardOpenOption.TRUNCATE_EXISTINGオプションを指定している。
これにより、新しいファイルが作成されて既存の内容が削除される。

その後、Files.readAllLines()メソッドを使用してexample.txtを読み取り、ファイルの内容を表示している。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1