Java でファイルが存在するかどうかをチェックする

Rupam Yadav 2023年1月30日 2020年12月21日
  1. java.io.File を使用して、ファイルが Java に存在するかどうかを確認する
  2. Java で isFile() を使用して、ファイルが存在するかどうかを確認する
  3. Java で Path.isFile()isFile() を使用して、ファイルが存在するかどうかを確認する
Java でファイルが存在するかどうかをチェックする

この記事では、ファイルが存在するかどうかを確認するための Java の簡単な方法をいくつか見ていきます。指定したファイルが存在するかどうかを知りたいときには、異なるパッケージやクラスを使用します。

java.io.File を使用して、ファイルが Java に存在するかどうかを確認する

Java 自身の入出力パッケージ java.io.File には、指定したファイルが存在するかどうかを調べるための exists() メソッドがあります。この関数は boolean を返すので、条件文の中に入れることができます。

しかし、exists() メソッドだけを使用すると、誤ってディレクトリを指定してしまった場合に true を返してしまうという問題があります。そのため、!file.isDirectory() を使用して、与えられた引数がファイルであってもディレクトリではないことを確認します。

import java.io.File;

public class Main {
    public static void main(String[] args) {
       
    File file1 = new File("sampleFile.txt");
    File file2 = new File("xyz.txt");

    //Checks if file1 exists
    if(file1.exists() && !file1.isDirectory()){
        System.out.println(file1 + " Exists");
    }else{
        System.out.println(file1 + " Does not exists");
    }

    //Checks if file2 exists
    if(file2.exists()){
        System.out.println(file2 + " Exists");
    }else{
        System.out.println(file2 + " Does not exists");
    }
     
    }
}

出力:

sampleFile.txt Exists
xyz.txt Does not exists

Java で isFile() を使用して、ファイルが存在するかどうかを確認する

次に、指定したファイルが存在するかどうかを調べる方法は、先ほどの例で用いた java.io.File パッケージの isFile() 関数を用いることです。

exists() よりも isFile() を用いる利点は、指定したファイルがディレクトリかどうかを調べる必要がないことです。関数名が示すように、これはファイルかどうかをチェックするだけです。

import java.io.File;

public class Main {

    public static void main(String[] args) {
        File file = new File("sampleFile.txt");
        File directory = new File("E:/Work/java");

         if(file.isFile()){
                    System.out.println(file + " Exists");
                }else{
                     System.out.println(file + " Do not Exist or it is a directory");
                }

        if(directory.isFile()){
               System.out.println(directory + " Exists");
                }else{
                     System.out.println(directory + " Do not Exist or it is a directory");
                }
    }
}

出力:

sampleFile.txt Exists
E:\Work\java Do not Exist or it is a directory

関数 isFile() の引数に既存のディレクトリが与えられた場合、false を返すことがわかります。

Java で Path.isFile()isFile() を使用して、ファイルが存在するかどうかを確認する

もう一つの Java パッケージ java.nio.file は、toFile()Paths のような便利なメソッドを提供してくれます。Paths.get() を用いて path を取得し、toFile を用いてそれをファイルに変換することができます。

最後に、先ほどの例で使った isFile() メソッドを呼び出して、それを組み合わせてファイルが存在するかどうかを確認できます。

import java.nio.file.Paths;
import java.nio.file.Path;

public class Main {

    public static void main(String[] args) {
       Path path = Paths.get("sampleFile.txt");

    if(path.toFile().isFile()){
        System.out.println(path + " Exists");
    }else{
        
        System.out.println(path + " Do not Exists");
    }
    }
}

出力:

sampleFile.txt Exists
Author: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

関連記事 - Java File