Verificar se existe um ficheiro em Java

Rupam Yadav 12 outubro 2023
  1. Utilize java.io.File para verificar se um ficheiro existe em Java
  2. Utilize isFile() para verificar se o ficheiro existe em Java
  3. Utilize Path.isFile() Com isFile() para verificar se o ficheiro existe ou não
Verificar se existe um ficheiro em Java

Este artigo analisará algumas formas simples em Java para verificar se um ficheiro existe. Utilizaremos diferentes pacotes e classes quando quisermos saber se o ficheiro especificado existe.

Utilize java.io.File para verificar se um ficheiro existe em Java

O próprio pacote E/S de Java java.io.File tem o método exists() para verificar se o ficheiro especificado existe. Esta função retorna boolean, o que significa que podemos colocá-lo numa declaração condicional.

Mas há um problema em utilizar apenas o método exists(), uma vez que também pode retornar true se especificarmos acidentalmente um directório. É por isso que também utilizaremos !file.isDirectory() para garantir que o argumento dado é um ficheiro mas não um directório.

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");
    }
  }
}

Resultado:

sampleFile.txt Exists xyz.txt Does not exists

Utilize isFile() para verificar se o ficheiro existe em Java

O método seguinte para verificar se o ficheiro especificado existe é utilizar a função isFile() do mesmo pacote java.io.File que utilizámos no exemplo anterior.

A vantagem de utilizar isFile() sobre exists() é que não temos de verificar se o ficheiro especificado é um directório ou não. Como o nome da função indica, apenas verifica se se trata ou não de um ficheiro.

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");
    }
  }
}

Resultado:

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

Podemos ver que se um directório existente é dado como argumento para a função isFile(), ele retorna false.

Utilize Path.isFile() Com isFile() para verificar se o ficheiro existe ou não

Outro pacote Java java.nio.file fornece-nos métodos úteis como toFile() e Paths. Podemos obter o path utilizando Paths.get() e depois convertê-lo para ficheiro utilizando toFile.

Finalmente, podemos trazer de volta o método que utilizámos no último exemplo, isFile(), e combiná-lo para verificar se o ficheiro existe.

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

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");
    }
  }
}

Resultado:

sampleFile.txt Exists
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

Artigo relacionado - Java File