Javaのファイル入出力(I/O)において、「ファイルとディレクトリの操作」は、ファイルシステムと連携し、ファイルの作成・削除・読み書き・ディレクトリの管理などを行う重要な機能です。Javaでは主に java.io パッケージおよび java.nio.file パッケージが使用されます。以下では、それぞれの操作について詳しく説明します。
1. File クラス(java.io.File)
File クラス(java.io.File)
概要:
File クラスは、ファイルやディレクトリのパス名を表すオブジェクトを提供します。ただし、実際のファイル内容を読み書きする機能は持ちません。
主な操作:
ファイルまたはディレクトリの作成:
存在確認、読み取り・書き込み権限の確認:
削除:
情報の取得:
ディレクトリ内のファイル一覧取得:
2. java.nio.file パッケージ(Java 7以降)
java.nio.file パッケージ(Java 7以降)
概要:
よりモダンで柔軟なファイル操作が可能です。Path, Files, Paths などのクラスを使用します。
主な操作:
ファイルまたはディレクトリの作成:
ファイルのコピー・移動・削除:
ファイルの存在確認:
ディレクトリ内のファイル一覧(ストリーム使用):
ファイル属性の取得:
3. ファイルパスの注意点
-
相対パスと絶対パスの使い分けに注意が必要です。
-
OS依存の区切り文字(
/vs\)の違いには、Paths.get()やFile.separatorを使うと安全です。
まとめ
| 操作 | java.io.File |
java.nio.file(推奨) |
|---|---|---|
| ファイル/ディレクトリの作成 | createNewFile(), mkdir() |
Files.createFile(), createDirectory() |
| 存在確認 | exists() |
Files.exists() |
| 削除 | delete() |
Files.delete() |
| コピー・移動 | 手動処理が必要 | Files.copy(), Files.move() |
| 属性取得 | 限定的なメソッドのみ | Files.readAttributes() |
java.nio.file パッケージは、非同期処理や属性管理などを含むより高機能なAPIであり、現在のJavaプログラムではこちらの利用が推奨されます。
生成日:2025/05/03