【速習Java】Fileクラスのexistsでファイルの存在チェック

こんにちは!エンジニアの中沢です。

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メソッドの使い方が少し異なるので注意してくださいね。

もしファイルやフォルダの存在を確認する方法を忘れてしまったらこの記事を確認してください!

この記事を書いた人

【プロフィール】
DX認定取得事業者に選定されている株式会社SAMURAIのマーケティング・コミュニケーション部が運営。「質の高いIT教育を、すべての人に」をミッションに、IT・プログラミングを学び始めた初学者の方に向け記事を執筆。
累計指導者数4万5,000名以上のプログラミングスクール「侍エンジニア」、累計登録者数1万8,000人以上のオンライン学習サービス「侍テラコヤ」で扱う教材開発のノウハウ、2013年の創業から運営で得た知見に基づき、記事の執筆だけでなく編集・監修も担当しています。
【専門分野】
IT/Web開発/AI・ロボット開発/インフラ開発/ゲーム開発/AI/Webデザイン

目次