概要
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.CREATE
とStandardOpenOption.TRUNCATE_EXISTING
オプションを指定している。
これにより、新しいファイルが作成されて既存の内容が削除される。
その後、Files.readAllLines()
メソッドを使用してexample.txt
を読み取り、ファイルの内容を表示している。