# How to check if a file exists in Java

By Atta Ur Rehman Shah (https://attacomsian.com/about). Published Dec 12, 2019. Topics: Java.
Canonical URL: https://attacomsian.com/blog/java-check-if-file-exists

> A short tutorial to learn how to check if a file exists in Java.

In this quick article, you'll learn how to **check if a file exists** in the file system using Java. 

## Using `Files.exists()` Method

In Java 7 and higher, you can use the [NIO API](https://attacomsian.com/blog/java-read-write-files-nio-api) `Files.exists()` static method to determine if a file is available on the on given path or not:

```java
if(Files.exists(Paths.get("access.log"))) {
    System.out.println("File exits.");
} else {
    System.out.println("File doesn't found.");
}
```

The above method will return `true` even if the path is a directory. To make sure that the **path exists and is a regular file**, you can combine `Files.exists()` method with `Files.isRegularFile()`:

```java
Path path = Paths.get("access.log");

// check if file exists and is a regular file
if (Files.exists(path) && Files.isRegularFile(path)) {
    System.out.println("Path exits and is a regular file.");
} else {
    System.out.println("Path not found.");
}
```

Similarly to **check if a file doesn't exist**, you can use another method called `Files.notExists()` as shown below:

```java
if(Files.notExists(Paths.get("access.log"))) {
    System.out.println("File doesn't found.");
} else {
    System.out.println("File is available.");
}
```

## Using `File.exists()` Method

In Java 6 or below, you can use `File.exists()` method to determine whether a file exists in your file system as shown below:

```java
File file = new File("access.log");

// check if file exists
if (file.exists()) {
    System.out.println("File found.");
} else {
    System.out.println("Path not found.");
}
```

To **check if a file exists and is not a folder**, you can do the following:

```java
File file = new File("access.log");

// check if file exists & not a folder
if (file.exists() && file.isFile()) {
    System.out.println("File found.");
} else {
    System.out.println("Path not found.");
}
```

## Further Reading

You may be interested in other Java I/O articles:

* [Reading and Writing Files in Java](https://attacomsian.com/blog/java-read-write-files)
* [How to Read and Write Text Files in Java](https://attacomsian.com/blog/java-read-write-text-files)
* [How to Read and Write Binary Files in Java](https://attacomsian.com/blog/java-read-write-binary-files)
* [Reading and Writing Files using Java NIO API](https://attacomsian.com/blog/java-read-write-files-nio-api)
* [How to read a file line by line in Java](https://attacomsian.com/blog/how-to-read-a-file-line-by-line-in-java)
