Introducción al trabajo con el sistema de archivos en Java
Trabajar con el sistema de archivos es una de las tareas fundamentales en cualquier lenguaje de programación. En Java, existe un conjunto de herramientas potente y flexible para este propósito. Ya sea que esté escribiendo una simple aplicación de consola o un complejo servicio web, saber gestionar archivos y carpetas es una habilidad obligatoria para cualquier desarrollador.
En este artículo, analizaremos las operaciones básicas con el sistema de archivos en Java. Aprenderá a crear, leer, escribir y eliminar archivos, así como a trabajar con directorios. El material está diseñado para principiantes, por lo que todos los ejemplos serán simples y fáciles de entender.
Java ofrece dos enfoques principales para trabajar con archivos: el paquete clásico java.io (desde Java 1.0) y el paquete moderno java.nio.file (introducido en Java 7). Revisaremos ambos, pero nos centraremos principalmente en NIO, ya que es más eficiente y conveniente.
1. Clase File: base para trabajar con archivos y carpetas
La clase java.io.File es la forma más antigua y sencilla de interactuar con el sistema de archivos. Representa una abstracción de la ruta a un archivo o directorio, pero no almacena el contenido del archivo. Con ella se pueden realizar operaciones básicas: verificar existencia, crear, renombrar y eliminar objetos.
Creación de un objeto File y verificación de existencia
Para comenzar, debe crear una instancia de la clase File, pasando la ruta al constructor:
import java.io.File;
public class FileExample { public static void main(String[] args) { // Creamos un objeto File para el archivo "example.txt" en el directorio actual File myFile = new File("example.txt");
// Verificamos si el archivo existe if (myFile.exists()) { System.out.println("¡El archivo existe!"); System.out.println("Ruta: " + myFile.getAbsolutePath()); System.out.println("Tamaño: " + myFile.length() + " bytes"); } else { System.out.println("Archivo no encontrado."); } }}Creación de archivos y directorios
Los métodos createNewFile() y mkdir() permiten crear archivos y carpetas respectivamente:
import java.io.File;import java.io.IOException;
public class CreateFiles { public static void main(String[] args) { // Creación de un archivo File file = new File("newFile.txt"); try { if (file.createNewFile()) { System.out.println("Archivo creado: " + file.getName()); } else { System.out.println("El archivo ya existe."); } } catch (IOException e) { System.out.println("Error al crear el archivo: " + e.getMessage()); }
// Creación de un directorio File dir = new File("myDirectory"); if (dir.mkdir()) { System.out.println("Directorio creado: " + dir.getName()); } else { System.out.println("No se pudo crear el directorio (posiblemente ya existe)."); }
// Creación de directorios anidados (mkdirs) File nestedDir = new File("parent/child/grandchild"); if (nestedDir.mkdirs()) { System.out.println("Directorios anidados creados."); } }}Renombrar y eliminar
Los métodos renameTo() y delete() permiten gestionar nombres y eliminar archivos:
import java.io.File;
public class RenameDelete { public static void main(String[] args) { File oldFile = new File("newFile.txt"); File newFile = new File("renamedFile.txt");
// Renombrar if (oldFile.renameTo(newFile)) { System.out.println("Archivo renombrado a " + newFile.getName()); } else { System.out.println("No se pudo renombrar.");