¿Por qué Java es la herramienta ideal para la automatización?
¿Alguna vez ha pasado medio día renombrando 200 archivos en una carpeta? ¿O ha copiado manualmente datos de una docena de tablas de Excel en un informe? ¿Le suena familiar? Entonces este artículo es para usted.
Java no es solo un lenguaje para enormes sistemas corporativos. Es una herramienta potente, estable y multiplataforma que es perfecta para la automatización de tareas rutinarias. A diferencia de los lenguajes de scripting, los programas Java funcionan rápido, son fáciles de mantener y el enorme ecosistema de bibliotecas (Maven Central) permite resolver prácticamente cualquier tarea "de fábrica".
En este artículo no hablaremos de teoría. Analizaremos 5 escenarios reales de automatización en Java con código listo que podrá copiar y adaptar a sus necesidades. ¡Vamos allá!
1. Automatización del trabajo con el sistema de archivos (renombrar, ordenar, limpiar)
La tarea más común es poner orden en los archivos. Imagine: tiene una carpeta con informes como report_2024_01_15.xlsx, report_2024_01_16.xlsx y así sucesivamente. Necesita moverlos a carpetas por mes. A mano, son 15 minutos. Con Java, 2 segundos.
Ejemplo: Ordenación automática de archivos por fecha
import java.io.IOException;import java.nio.file.*;import java.time.LocalDate;import java.time.format.DateTimeFormatter;import java.util.regex.Matcher;import java.util.regex.Pattern;
public class FileSorter { public static void main(String[] args) throws IOException { Path sourceDir = Paths.get("C:/reports"); Pattern pattern = Pattern.compile("report_(\\\\d{4})_(\\\\d{2})_(\\\\d{2})\\\\.xlsx");
try (DirectoryStream<Path> stream = Files.newDirectoryStream(sourceDir, "*.xlsx")) { for (Path file : stream) { Matcher matcher = pattern.matcher(file.getFileName().toString()); if (matcher.matches()) { String year = matcher.group(1); String month = matcher.group(2); Path targetDir = sourceDir.resolve(year).resolve(month); Files.createDirectories(targetDir); Files.move(file, targetDir.resolve(file.getFileName()), StandardCopyOption.REPLACE_EXISTING); System.out.println("Movido: " + file.getFileName()); } } } System.out.println("¡Listo! Archivos ordenados en carpetas."); }}¿Qué hace este código? Escanea la carpeta, encuentra todos los archivos que coinciden con el patrón, extrae el año y el mes del nombre, crea subcarpetas y mueve los archivos. Todo simple y confiable.
Puede adaptar fácilmente este código a sus necesidades: cambiar el patrón, agregar registro o hacer un recorrido recursivo de subcarpetas. Esta es la base para cualquier automatización de tareas en Java relacionada con archivos.
2. Análisis y procesamiento de archivos Excel (Apache POI)
Excel es la herramienta "favorita" de contadores, gerentes y analistas. Y a menudo necesita recopilar datos de 10 archivos en uno, o viceversa: dividir un archivo grande en varios. La biblioteca Apache POI es el estándar de facto para trabajar con Excel en Java.
Ejemplo: Lectura de datos de Excel y generación de un informe resumido
import org.apache.poi.ss.usermodel.*;import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.util.HashMap;import java.util.Map;
public class ExcelAggregator { public static void main(String[] args) throws IOException { Map<String, Double> summary = new HashMap<>();
// Leemos tres archivos String[] files = {"sales_q1.xlsx", "sales_q2.xlsx", "sales_q3.xlsx"}; for (String fileName : files) {