Trabajo con el sistema de archivos en Java: guía completa

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: de File a NIO



Trabajar con el sistema de archivos es una de las tareas fundamentales en el desarrollo en Java. Ya sea para leer configuraciones, escribir registros o procesar datos de usuario, saber cómo interactuar correctamente con archivos y directorios es necesario para todo desarrollador Java. En este artículo, analizaremos en detalle las clases y enfoques principales para trabajar con el sistema de archivos, comenzando con el clásico java.io.File y terminando con el moderno java.nio.file.



Clase File: conceptos básicos de trabajo con archivos y carpetas



La clase java.io.File existe en Java desde la primera versión y proporciona capacidades básicas para trabajar con rutas, archivos y directorios. No lee ni escribe datos directamente, pero permite realizar operaciones de gestión del sistema de archivos.



Creación de un objeto File y verificación de existencia:

import java.io.File;

public class FileExample { public static void main(String[] args) { File file = new File("example.txt"); File dir = new File("myFolder");

System.out.println("El archivo existe: " + file.exists()); System.out.println("Es un directorio: " + dir.isDirectory()); }}


Creación de archivos y directorios:

File newFile = new File("newFile.txt");if (newFile.createNewFile()) {    System.out.println("Archivo creado: " + newFile.getName());} else {    System.out.println("El archivo ya existe");}

File newDir = new File("newDirectory");if (newDir.mkdir()) { System.out.println("Carpeta creada");}

// Crear directorios anidadosFile nestedDir = new File("parent/child/grandchild");if (nestedDir.mkdirs()) { System.out.println("Carpetas anidadas creadas");}


Obtención de información sobre el archivo:

File infoFile = new File("example.txt");System.out.println("Ruta absoluta: " + infoFile.getAbsolutePath());System.out.println("Tamaño: " + infoFile.length() + " bytes");System.out.println("Última modificación: " + infoFile.lastModified());System.out.println("Carpeta padre: " + infoFile.getParent());


Eliminación y renombrado:

File fileToDelete = new File("temp.txt");if (fileToDelete.delete()) {    System.out.println("Archivo eliminado");}

File oldFile = new File("old.txt");File newFile = new File("new.txt");if (oldFile.renameTo(newFile)) { System.out.println("Archivo renombrado");}


Lectura y escritura de archivos: flujos clásicos de entrada y salida



Para la lectura y escritura directa de datos se utilizan flujos de entrada y salida (I/O streams). Las clases principales son: FileInputStream, FileOutputStream para datos binarios y FileReader, FileWriter para datos de texto.



Escritura de texto en un archivo con FileWriter:

import java.io.FileWriter;import java.io.IOException;

public class WriteExample { public static void main(String[] args) { try (FileWriter writer = new FileWriter("output.txt")) { writer.write("¡Hola, mundo!"); writer.write("Esta es la segunda línea."); System.out.println("Escritura realizada con éxito"); } catch (IOException e) { System.err.println("Error de escritura: " + e.getMessage()); } }}


Lectura de texto desde un archivo con FileReader y BufferedReader:

import java.io.BufferedReader;import java.io.FileReader;import java.io.IOException;

public class ReadExample { public static void main(String[] args) { try (BufferedReader reader = new BufferedReader(new FileReader("output.txt"))) { String line; while ((line = reader.readLine()) != null) { System.out.println(line);

Blogs

Book Recommendations