Java Files exists()

In this guide, you will learn about the Files.exists() method in Java programming and how to use it with an example.

1. Files exists() Method Overview

Definition:

The Files.exists() method is used to check if a file or directory denoted by the specified path exists or not.

Syntax:

static boolean exists(Path path, LinkOption... options)

Parameters:

- path: the path to the file or directory to check.

- options: options indicating how symbolic links are handled.

Key Points:

- The method returns true if the file or directory exists; otherwise, it returns false.

- The method can handle symbolic links. If no options are specified and the file is a symbolic link, the method checks if the link target exists. If the NOFOLLOW_LINKS option is specified, the method checks the existence of the symbolic link itself, not its target.

- Files.exists() method is often preferred over File.exists() because it offers better exception messages and can handle symbolic links more effectively.

2. Files exists() Method Example

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

public class FilesExistsExample {
    public static void main(String[] args) {
        Path filePath = Paths.get("sample.txt");
        Path symbolicLinkPath = Paths.get("sampleLink.txt");

        boolean fileExists = Files.exists(filePath);
        boolean symbolicLinkExists = Files.exists(symbolicLinkPath, LinkOption.NOFOLLOW_LINKS);

        System.out.println("File exists: " + fileExists);
        System.out.println("Symbolic link exists (without following): " + symbolicLinkExists);
    }
}

Output:

File exists: true
Symbolic link exists (without following): false

Explanation:

In the example, we first check if a file named sample.txt exists. 

Next, we check if a symbolic link named sampleLink.txt exists without following the link (i.e., we are only interested in the existence of the link itself, not its target). The results are then printed to the console.

Comments