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

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

Javaにはファイルの存在を確認するexistsメソッドがあります。この記事では、existsメソッドについて

  • existsメソッドとは
  • existsメソッド使い方
  • アクセス権限の無いファイルの場合
  • notExistsメソッドの使い方

などの基本的な内容から、応用的な使い方に関しても解説していきます。今回はこれらの内容を覚えるために、existsメソッドを使ってファイルの存在を確認する方法をわかりやすく解説します!

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:\\Sample\\Test.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:\\Sample\\Test.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クラスのさまざまな使い方については、以下の記事にまとめていますので、ぜひ参考にしてくださいね!

JavaのFileクラスをマスター!基礎から便利な使い方まで総まとめ
更新日 : 2019年5月10日

Fileクラスでパスを指定してファイルを作成する方法

existsメソッドを使ったファイルの存在チェックは、ファイルを新規作成する前に使われることもあります。Fileクラスでパスを指定してファイルを作成する方法については、以下の記事にまとめていますので、ぜひ参考にしてくださいね!

【Java入門】ファイルパスを取得・指定する(java.io.File/java.nio.file.Files)
更新日 : 2019年10月14日

deleteでファイルを削除する方法

existsメソッドを使ったファイルの存在チェックは、ファイルを削除する前に使われることもあります。deleteメソッドでファイルを削除する方法については、以下の記事にまとめていますので、ぜひ参考にしてくださいね!

【Java入門】file・directoryの削除で失敗しない方法(delete)
更新日 : 2017年8月21日

listFilesでファイル一覧を取得する方法

existsメソッドを使ったフォルダの存在チェックは、フォルダ内のファイル一覧を取得する前に使われることもあります。listFilesメソッドでファイル一覧を取得する方法については、以下の記事にまとめていますので、ぜひ参考にしてくださいね!

【Java入門】FileのlistFilesでファイルを検索して一覧を取得
更新日 : 2019年10月14日

ファイルの読み・書きについて知りたい方へ

existsメソッドを使ったファイルの存在チェックは、ファイルを読み込んだり、書き込んだりする前に使われることもあります。

FileReaderでテキストファイルを読み込む方法

FileReaderクラスを使ってテキストファイルを読み込む方法については、以下の記事にまとめていますので、ぜひ参考にしてくださいね!

【Java】FileReader、BufferedReaderでテキストファイルを読み込む
更新日 : 2019年5月28日

FileWriterでテキストファイルへ書き込む方法

FileWriterクラスを使ってテキストファイルへ書き込む方法については、以下の記事にまとめていますので、ぜひ参考にしてくださいね!

【Java入門】FileWriterを使ってファイルに書き込む方法
更新日 : 2018年11月13日

FileInputStreamでバイナリファイルを読み込み方法

FileInputStreamクラスを使ってバイナリファイルを読み込み方法については、以下の記事にまとめていますので、ぜひ参考にしてくださいね!

【Java入門】FileInputStreamでファイルを読み込む方法
更新日 : 2018年11月13日

FileOutputStreamでバイナリファイルへ書き込む方法

FileOutputStreamクラスを使ってバイナリファイルへ書き込む方法については、以下の記事にまとめていますので、ぜひ参考にしてくださいね!

【Java】FileOutputStreamでファイルに書き込む
更新日 : 2019年6月10日

まとめ

いかがでしたか?今回はexistsメソッドを使ってファイルの存在を確認する方法について解説しました。java.io.Fileクラスと、java.nio.file.Filesクラスでexistsメソッドの使い方が少し異なるので注意してくださいね。

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

LINEで送る
Pocket

SEからWebエンジニアへ転職した理由

侍エンジニア塾卒業生の小池さんは、以前は社内SEとして約5年ほど勤務していました。しかし業務内容は社内のヘルプデスク対応など、プログラムを書く仕事は全くなかったそうです。

SEながらプログラムを書けない現状に「将来仕事がなくなるんじゃないか」と不安を感じ、プログラミング学習を決意。

弊社スクールで学習し、無事ベンチャー企業のプログラマーとして転職に成功しました。そんな小池さんの学習法や転職体験談を伺いましたので、是非ご覧ください。

「プログラミングができないSEは仕事がなくなる」不安を感じたSEが未経験から転職成功するまで
更新日 : 2019年10月7日

書いた人

中沢 丈

中沢 丈

フリーランスエンジニア。
システム開発からコンテンツ作成まで幅広く対応します。

連絡先はこちらです。
[email protected]

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説