こんにちは!エンジニアの中沢です。
Javaにはファイルの存在を確認するexistsメソッドがあります。この記事では、existsメソッドについて
- existsメソッドとは
- existsメソッド使い方
- アクセス権限の無いファイルの場合
- notExistsメソッドの使い方
などの基本的な内容から、応用的な使い方に関しても解説していきます。今回はこれらの内容を覚えるために、existsメソッドを使ってファイルの存在を確認する方法をわかりやすく解説します!
なお、Javaの記事については、こちらにまとめています。
exitsメソッドとは
初めにexistsメソッドについて解説します。existsメソッドはファイルやフォルダが存在するかを確認するために使います。existsメソッドは指定したパスに、ファイルやフォルダが存在すれば戻り値に”true”、存在しなければ”false”を返します。
ただし、アクセス権限の無いファイルは存在しても”false”を返すので注意してください。ファイルを読み込む処理で、ファイルが存在しない場合にはFileNotFoundExceptionの例外が発生するので、事前にexistsメソッドで存在を確認をする必要があります。
ファイルを扱うクラスにはjava.io.Fileクラスと、Java7で追加されたjava.nio.file.Filesクラスがあります。この記事では、この両方クラスでexistsメソッドの使い方を解説します。
java.io.Fileクラスのexistsメソッド
ここではjava.io.Fileクラスのexistsメソッドを使ってファイルとフォルダが存在するか確認する方法を解説します。ファイルの存在を確認するには、ファイルのパスを指定したFileクラスのインスタンスを生成して、existsメソッドを実行するだけでOKです。
java.io.Fileクラスを使うには、次のimport文が必要なので忘れないようにしてください。
import java.io.File;
java.io.Fileクラスのexistsメソッドの使い方を覚えるために、次のプログラムで確認してみましょう!
import java.io.File; public class Main { public static void main(String args[]) { // 確認するフォルダとファイルのパスを指定する File folder = new File("c:Sample"); File file = new File("c:SampleTest.txt"); // フォルダの存在を確認する if (folder.exists()) { System.out.println("フォルダが存在します"); } else { System.out.println("フォルダが存在しません"); } // ファイルの存在を確認する if (file.exists()) { System.out.println("ファイルが存在します"); } else { System.out.println("ファイルが存在しません"); } } }
実行結果:
フォルダが存在します ファイルが存在します
このサンプルプログラムでは指定したパスにフォルダとファイルが存在するため、existsメソッドが”true”を返しています。このようにしてファイルとフォルダの存在を確認することができました!
java.nio.file.Filesクラスのexistsメソッド
次はJava7で追加されたjava.nio.file.Filesクラスで、existsメソッドを使ってファイルとフォルダが存在するか確認する方法を解説します。java.nio.file.Filesクラスのexistsメソッドの使い方は、ファイルのパスを指定して、それをexistsメソッドの引数に指定すればOKです。
java.nio.file.Filesクラスには、notExistsメソッドもあります。notExistsメソッドはファイルが存在しない場合に”true”を返すので、existsメソッドと逆の判定をする場合に使います。
今回の処理を行うには、次のimport文が必要なので忘れないようにしてください。
import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths;
java.nio.file.FilesクラスのexistsメソッドとnotExistsメソッドの使い方を覚えるために、次のプログラムで確認してみましょう!
import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; public class Main { public static void main(String args[]) { // 確認するフォルダとファイルのパスを指定する Path folderPath = Paths.get("c:Sample"); Path filePath = Paths.get("c:SampleTest.txt"); // フォルダの存在を確認する if (Files.exists(folderPath)) { System.out.println("フォルダが存在します"); } else { System.out.println("フォルダが存在しません"); } // ファイルの存在を確認する if (Files.exists(filePath)) { System.out.println("ファイルが存在します"); } else { System.out.println("ファイルが存在しません"); } // notExistsメソッドでファイルの存在を確認する if (Files.notExists(filePath)) { System.out.println("ファイルが存在しません"); } else { System.out.println("ファイルが存在します"); } } }
実行結果:
フォルダが存在します ファイルが存在します ファイルが存在します
このプログラムでは指定したパスにフォルダとファイルが存在するため、existsメソッドが”true”を返し、notExistsメソッドが”false”を返しています。このようにしてファイルとフォルダの存在を確認することができました!
Fileクラスについてもっと詳しく知りたい方へ
Fileクラスのさまざまな使い方については、以下の記事にまとめていますので、ぜひ参考にしてくださいね!
Fileクラスでパスを指定してファイルを作成する方法
existsメソッドを使ったファイルの存在チェックは、ファイルを新規作成する前に使われることもあります。Fileクラスでパスを指定してファイルを作成する方法については、以下の記事にまとめていますので、ぜひ参考にしてくださいね!
deleteでファイルを削除する方法
existsメソッドを使ったファイルの存在チェックは、ファイルを削除する前に使われることもあります。deleteメソッドでファイルを削除する方法については、以下の記事にまとめていますので、ぜひ参考にしてくださいね!
listFilesでファイル一覧を取得する方法
existsメソッドを使ったフォルダの存在チェックは、フォルダ内のファイル一覧を取得する前に使われることもあります。listFilesメソッドでファイル一覧を取得する方法については、以下の記事にまとめていますので、ぜひ参考にしてくださいね!
ファイルの読み・書きについて知りたい方へ
existsメソッドを使ったファイルの存在チェックは、ファイルを読み込んだり、書き込んだりする前に使われることもあります。
FileReaderでテキストファイルを読み込む方法
FileReaderクラスを使ってテキストファイルを読み込む方法については、以下の記事にまとめていますので、ぜひ参考にしてくださいね!
FileWriterでテキストファイルへ書き込む方法
FileWriterクラスを使ってテキストファイルへ書き込む方法については、以下の記事にまとめていますので、ぜひ参考にしてくださいね!
FileInputStreamでバイナリファイルを読み込み方法
FileInputStreamクラスを使ってバイナリファイルを読み込み方法については、以下の記事にまとめていますので、ぜひ参考にしてくださいね!
FileOutputStreamでバイナリファイルへ書き込む方法
FileOutputStreamクラスを使ってバイナリファイルへ書き込む方法については、以下の記事にまとめていますので、ぜひ参考にしてくださいね!
まとめ
いかがでしたか?今回はexistsメソッドを使ってファイルの存在を確認する方法について解説しました。java.io.Fileクラスと、java.nio.file.Filesクラスでexistsメソッドの使い方が少し異なるので注意してくださいね。
もしファイルやフォルダの存在を確認する方法を忘れてしまったらこの記事を確認してください!