【Java】existsを使って指定したファイルが存在するか判定する!
指定したファイルが存在するか調べるにはFileクラスのexistsメソッドを使用します。
Fileクラスとは、Javaを使ってローカルディスクに対して、ファイルの作成や削除やコピーの変更など、ファイルを操作することができるクラスであり、そのクラスにあるexistsメソッドは、指定したパスに対象のファイルが存在するのかを判定するメソッドとなります。
ファイルの作成や削除、移動などのファイルの操作を行う場合に、existsメソッドを使うことでファイルの存在を確認できる為、例外やエラーを減らすことができます。
今回はFileクラスのexistsメソッドを使って以下の場合で指定したファイルが存在するかを判定していきます。
⚫︎ 指定したファイルが存在する場合
⚫︎ 指定したファイルが存在しない場合
また、Java7から使用できるようになったFilesクラスのexistsメソッドとnotExistsメソッドを使って、指定したファイルが存在するかを判定する方法についても紹介していきます。
目次
Fileクラスとは
Fileクラスとは、ローカルディスクに対して、ファイルの作成や削除やコピーの変更など、ファイルを操作するクラスとなります。
Fileクラスの書き方
Fileクラスの構文は下記となります。
1 2 3 |
import java.io.File; File オブジェクト名 = new File("ファイルパス"); |
FileクラスをインポートすることでFileクラスで準備されているメソッドを使用できるようになります。
また、ファイルパスを引数としてFileクラスをインスタンス化することで指定したファイルに対して操作を行うことができます。
existsメソッドとは
Fileクラスのexistsメソッドとは、指定したパスに対象のファイルが存在するのかを判定するメソッドになります。
existsメソッドの書き方
Fileクラスのexistsメソッドの構文は下記となります。
1 |
File.exists(); |
existsメソッドを呼び出すことでexists前にファイルが指定したパスに存在するのか判定します。
ファイルが指定したパスに存在する場合は「true」を返し、存在しない場合は「false」を返します。
指定したファイルが存在するか判定するサンプルコード
指定したファイルが存在するか判定するサンプルコードを紹介します。
指定したファイルが存在する場合
「C:¥study」以下に「targetFile.txt」を用意し、Main.javaを実行します。
Main.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
// 指定したパスが存在するか調べる import java.io.File; public class Main { public static void main(String[] args) throws Exception { // 調べるパス File file1 = new File("c:/study/targetFile.txt"); // 指定したパスが存在するか調べる System.out.println(file1 + "は存在する:" + file1.exists()); } } |
出力結果
c:\study\targetFile.txtは存在する:true
「C:¥study」以下に「targetFile.txt」が存在しているので、existsメソッドはtrueを返しています。
指定したファイルが存在しない場合
「C:¥study」以下に「targetFile.txt」を用意せずに、Main.javaを実行します。
Main.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
// 指定したパスが存在するか調べる import java.io.File; public class Main { public static void main(String[] args) throws Exception { // 調べるパス File file2 = new File("c:/study/targetFile.txt"); // 指定したパスが存在するか調べる System.out.println(file2 + "は存在する:" + file2.exists()); } } |
出力結果
c:\study\targetFile.txtは存在する:false
「C:¥study」以下に「targetFile.txt」が存在しないので、existsメソッドは falseを返しています。
NIO.2(Filesクラス)で指定したファイルが存在するか判定する場合
NIO.2(Filesクラス)で指定したファイルが存在するか判定するにはexistsメソッドを使用します。
NIO.2とはJava7で導入された「java.nio.file」パッケージとそのサブパッケージとを合わせたものであり、NIO.2のFilesクラスを使用することでとても簡単にファイル処理を行うことができます。
Filesクラスのexistsメソッドを使うとFileクラスのexistsメソッドと同様に、パスの存在を確認することができます。
また、反対にパスが存在しないことを確認するFilesクラスのnotExistsメソッドもあります。
このメソッドは、existsメソッドと逆の結果を戻します。
「C:¥study」以下に「targetFile.txt」を用意し、Main.javaを実行します。
Main.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
// 指定したパスが存在するか調べる import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; public class Main { public static void main(String[] args) throws Exception { // 調べる対象のパス Path path = Paths.get("C:/study/targetFile.txt"); // 指定したパスが存在するか調べる System.out.println( path + "は存在する:" + Files.exists(path)); // 指定したパスが存在しないか調べる System.out.println( path + "は存在しない:" + Files.notExists(path)); } } |
出力結果
C:/study/targetFile.txtは存在する:true
C:/study/targetFile.txtは存在しない:false
「C¥study」以下に「targetFile.txt」を用意している為、existsメソッドはtrueを返し、notExistsメソッドではfalseを返しています。
今回のポイント
existsで指定したファイルが存在するか判定する
指定したパスが存在するか判定するにはFileクラスのexistsメソッドを使用する。
⚫︎ Fileクラスのexistsメソッドで、パスが存在するかどうか確認することができる
⚫︎ パスが存在する場合、existsメソッドは「true」を戻し、パスが存在しない場合は「false」を返す
⚫︎ Filesクラスのexistsメソッドでもパスが存在するかどうか確認することができる
関連記事
指定したパスがディレクトリかファイルかを調べる方法についてはこちらをご参考ください。
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。