Filesクラスは基本的にPathクラスのオブジェクトを引数に取って処理します。
そのため、Pathクラスの使い方を知っている必要があります。
Pathクラスについては以下の記事で解説しています。
ファイルの存在確認
まずはディレクトリの中に何があるかを確認します。
Linuxコマンド
「text123.txt」と「text456.txt」があります。
Javaでファイルが存在するかどうかを確認するにはexists(path)
を使用します。
Java
実行結果
「text789.txt」は存在しないので、falseとなります。
空ファイルを作成する
空ファイルの作成を行うにはcreateFile(path)
を使用します。
まずはこれから作成するファイル名のファイルが存在しないことを確認します。
Linuxコマンド
Javaで「text999.txt」という名前のファイルを作成します。
Java
ファイルが作成されたかどうかを確認します。
Linuxコマンド
これで無事にファイルが作成されました。
同名のファイルが既に存在する場合
同名のファイルが既に存在する場合はjava.nio.file.FileAlreadyExistsException
が発生してしまいます。
Java
実行結果
ファイル作成を行う際は必ずexists(path)メソッドでファイルの存在確認をするようにしましょう。
ファイルをコピーする
ファイルコピーを行うにはcopy(path,target)
を使用します。
Java
ファイルがコピーされたか確認してみます。
Linuxコマンド
中身までしっかりコピーされていることが確認できました。
コピー先のファイルが既に存在する場合
コピー先のファイルが既に存在する場合はjava.nio.file.FileAlreadyExistsException
が発生してしまいます。
Java
実行結果
ファイルをコピーする場合は必ずexists(path)メソッドでコピー先のファイルの存在確認をするようにしましょう。
ファイルを移動する
ファイルを移動するにはmove(path)
を使用します。
Java
ファイルが移動したか確認してみます。
Linuxコマンド
folderAは空でfolderBにaaa.txtが存在するので、これで無事に移動できました。
-
targetの方はaaa.txtというファイル名になっています。folderAに格納されていたtext.txtという名前のファイルをfolderBに格納する際にaaa.txtというファイル名に変わっているのです。
移動先に既に同名ファイルが存在する場合
移動先に同盟のファイルが既に存在する場合はjava.nio.file.FileAlreadyExistsException
が発生してしまいます。
Java
実行結果
ファイルを移動する場合は必ずexists(path)メソッドで移動先ファイルの存在確認をするようにしましょう。
ファイル削除
ファイルを削除するにはdeleteIfExists(path)
を使用します。
ファイルの削除に成功した場合はtrue
を返し、ファイルを削除できなかった場合はfalse
を返します。
Java
実行結果
ディレクトリ判定
ディレクトリ判定行うには、isDirectory(path)
を使用します。
Java
実行結果
「C:\\workspace\\text123.txt」はディレクトリではないのでfalseとなりました。
通常ファイル判定
通常ファイルであるかを判定するにはisRegularFile(path)
を使用します。
Java
実行結果
p1は通常ファイルなのでTrueになり、p2はディレクトリなのでfalseとなります。
隠しファイル判定
隠しファイルであるかを判定するにはisHidden(path)
を使用します。
Java
実行結果
「textHiddne.txt」は隠しファイルなのでTrueになります。
ファイルの内容をbyte配列で取得する
ファイルの内容をbyte配列で取得するにはFiles.readAllBytes
を使用します。
Java
実行結果
ディレクトリの作成(再帰なし)
ディレクトリを作成するにはcreateDirectory(path)を使用します。
- このメソッドは指定したパスの最後のディレクトリのみを作成するため、途中のディレクリ(dir20までの各フォルダ)が存在していないと異常終了してしまいます。
- これを気にしないで作成したい場合は、後述の`createDirectories(paths)`を使った再帰処理でディレクトリ作成する方法が便利です。
Java
Linuxコマンド
ディレクトリの作成(再帰あり)
まずはディレクトリが存在しないことを確認します。
Linuxコマンド
再帰してディレクトリを作成するにはcreateDirectories(paths)
を使用します。
Java
ディレクトリが作成されたかどうかを確認してみます。
Linuxコマンド
無事作成されていることを確認できました。
フルパスでファイル名を指定した場合は要注意
以下のように、パスの最後がファイル名になっている場合は注意が必要です。
Java
このまま実行してしまうと以下のように「test999.txt」という名前でディレクトリが作成されてしまいます。
Linuxコマンド
こうした場合はgetParent()
を使って親ディレクトリ作成をします。
Java
Linuxコマンド
getParent()で「C:\\workspace\\dir7\\dir8\\dir9\\」までを取得してディレクトリ作成をすることができました。

以上で記事の解説はお終い!
もっとJavaやSpringを勉強したい方にはUdemyがオススメ!同僚に差をつけよう!