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

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

ITエンジニアへ転職したい方におすすめ

自分を評価してくれる企業に転職して年収を上げたい! 自分のスキルにあった独自案件を知りたい!
エンジニアは今もっとも注目されている職業の1つ。エンジニアになって年収を増やしたい方や、あなたのスキルに見合った企業へ転職したいエンジニアの方も多いですよね。

しかし、大手の転職媒体は扱う求人数が多くても、誰もが登録しているので競争率もかなり高くなっています。そのため、あなたの条件に見合った企業を見つけても転職するためには、相応の努力とスキルが必要となります。

こういった媒体では、未経験からエンジニアを目指す方やエンジニア歴2〜3年で転職を考えている方にとって、最適な転職環境とはいえません。

そこでオススメしたいのが、未経験者や若手エンジニア向けの独自案件を多く掲載している「侍ワークス」です。

侍ワークスは、独自案件を多く掲載しているだけでなく、

・応募から就業まで一貫したサポート

・就業後もアフターフォロー

といった経験の浅い方や初めてエンジニアを目指す方にも安心のフォロー体制が整っています。もちろん登録は完全無料!しかも案件を見るだけなら登録も不要です。

まずは、お気軽にどんな求人があるか見てみてください。あなたにピッタリの企業がきっと見つかりますよ! 侍ワークスの求人情報を見る

書いた人

中沢 丈

中沢 丈

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

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