Trabajo con el sistema de archivos en Java: guía práctica

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Trabajo con el sistema de archivos en Java: en la práctica

\n\n

En el desarrollo moderno con Java, trabajar con el sistema de archivos es una de las tareas fundamentales. Ya sea para guardar configuraciones, procesar registros o cargar datos de usuario, la capacidad de interactuar correctamente con archivos y directorios es necesaria para todo desarrollador. En este artículo, analizaremos los aspectos prácticos del trabajo con el sistema de archivos en Java, utilizando tanto el enfoque clásico (clase File) como la API moderna NIO.2 (Path, Files).

\n\n

El material está orientado a profesionales: obtendrá ejemplos de código listos para usar que puede aplicar inmediatamente en sus proyectos. Veremos la creación, lectura, escritura, copia y eliminación de archivos, así como el trabajo con directorios.

\n\n

Enfoque clásico: clase File

\n\n

Antes de la llegada de Java 7, la herramienta principal para trabajar con el sistema de archivos era la clase java.io.File. A pesar de que se considera obsoleta, todavía se puede encontrar en proyectos heredados. Veamos las operaciones principales.

\n\n

Creación de archivo:

\n
import java.io.File;\nimport java.io.IOException;\n\npublic class FileExample {\n    public static void main(String[] args) {\n        File file = new File("example.txt");\n        try {\n            if (file.createNewFile()) {\n                System.out.println("Archivo creado: " + file.getName());\n            } else {\n                System.out.println("El archivo ya existe.");\n            }\n        } catch (IOException e) {\n            System.out.println("Error al crear el archivo: " + e.getMessage());\n        }\n    }\n}
\n\n

Verificación de existencia y propiedades del archivo:

\n
File file = new File("example.txt");\nif (file.exists()) {\n    System.out.println("El archivo existe");\n    System.out.println("Ruta absoluta: " + file.getAbsolutePath());\n    System.out.println("Tamaño: " + file.length() + " bytes");\n    System.out.println("Legible: " + file.canRead());\n    System.out.println("Escribible: " + file.canWrite());\n}
\n\n
    \n
  • exists() — verifica si el archivo o directorio existe.
  • \n
  • isFile() — indica si el objeto es un archivo.
  • \n
  • isDirectory() — indica si el objeto es un directorio.
  • \n
  • length() — devuelve el tamaño del archivo en bytes.
  • \n
  • delete() — elimina un archivo o un directorio vacío.
  • \n
\n\n

La desventaja de la clase File es la falta de soporte para enlaces simbólicos, metadatos y un manejo limitado de excepciones. Para proyectos nuevos, se recomienda usar NIO.2.

\n\n

Enfoque moderno: NIO.2 (Path y Files)

\n\n

A partir de Java 7, el JDK incluye el paquete java.nio.file, que proporciona una API más flexible y eficiente. Las clases principales son: Path (representa la ruta a un archivo o directorio) y Files (contiene métodos estáticos para las operaciones).

\n\n

Creación de archivo con Files:

\n
import java.nio.file.Files;\nimport java.nio.file.Path;\nimport java.nio.file.Paths;\nimport java.io.IOException;\n\npublic class NioExample {\n    public static void main(String[] args) {\n        Path path = Paths.get("nio_example.txt");\n        try {\n            Files.createFile(path);\n            System.out.println("Archivo creado: " + path.toAbsolutePath());\n        } catch (IOException e) {\n            System.out.println("Error: " + e.getMessage());\n        }\n    }\n}
\n\n

Creación de directorios:

\n
Path dirPath = Paths.get("myDir/subDir");\ntry {\n    Files.createDirectories(dirPath); // crea todos los directorios padre faltantes\n    System.out.println("Directorio creado: " + dirPath);\n} catch (IOException e) {\n    e.printStackTrace();\n}
\n\n

Lectura y escritura de archivos:

\n

La forma más sencilla de le

Blogs

Book Recommendations