Cómo comprobar si un archivo existe en Java

Rupam Yadav 12 octubre 2023
  1. Usaremos java.io.File para comprobar si un archivo existe en Java
  2. Usando isFile() para comprobar si el archivo existe en Java
  3. Usa Path.isFile() con isFile() para comprobar si el archivo existe o no
Cómo comprobar si un archivo existe en Java

Este artículo examinará algunas formas sencillas en Java para comprobar si un archivo existe. Usaremos diferentes paquetes y clases cuando queramos saber si el archivo especificado existe.

Usaremos java.io.File para comprobar si un archivo existe en Java

El propio paquete de Entrada/Salida de Java java.io.File tiene el método exists() para comprobar si el archivo especificado existe. Esta función devuelve boolean, lo que significa que podemos ponerla en una declaración condicional.

Pero hay un problema con el uso exclusivo del método exists(), ya que también puede devolver true si especificamos accidentalmente un directorio. Por eso también usaremos !File.isDirectory() para asegurarnos de que el argumento dado es un archivo pero no un directorio.

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

Salida

sampleFile.txt Exists xyz.txt Does not exists

Usando isFile() para comprobar si el archivo existe en Java

El siguiente método para comprobar si el archivo especificado existe es usar la función isFile() del mismo paquete java.io.File que usamos en el ejemplo anterior.

La ventaja de usar isFile() sobre exists() es que no tenemos que comprobar si el archivo especificado es un directorio o no. Como el nombre de la función indica, sólo comprueba si es un archivo o no.

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

Salida

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

Podemos ver que si se da un directorio existente como argumento a la función isFile(), devuelve false.

Usa Path.isFile() con isFile() para comprobar si el archivo existe o no

Otro paquete de Java java.nio.file nos proporciona métodos útiles como toFile() y Paths. Podemos obtener el path usando Paths.get() y luego convertirlo en un archivo usando toFile.

Finalmente, podemos traer de vuelta el método que usamos en el último ejemplo, isFile(), y combinarlo para comprobar si el archivo 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

Artículo relacionado - Java File