Por que Java é a ferramenta ideal para automação?
Você já passou meio dia renomeando 200 arquivos em uma pasta? Ou copiou manualmente dados de uma dúzia de planilhas Excel para um relatório? Familiar? Então este artigo é para você.
Java não é apenas uma linguagem para enormes sistemas corporativos. É uma ferramenta poderosa, estável e multiplataforma, perfeita para automação de tarefas rotineiras. Ao contrário de linguagens de script, programas Java são rápidos, fáceis de manter, e o enorme ecossistema de bibliotecas (Maven Central) permite resolver praticamente qualquer tarefa "pronta para uso".
Neste artigo, não vamos falar de teoria. Vamos abordar 5 cenários reais de automação em Java com código pronto que você pode copiar e adaptar às suas necessidades. Vamos lá!
1. Automação do sistema de arquivos (renomear, classificar, limpar)
A tarefa mais comum é organizar arquivos. Imagine: você tem uma pasta com relatórios como report_2024_01_15.xlsx, report_2024_01_16.xlsx e assim por diante. Você precisa movê-los para pastas por mês. Manualmente, são 15 minutos. Java, 2 segundos.
Exemplo: Classificação automática de arquivos por data
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("Pronto! Arquivos classificados em pastas."); }}O que este código faz? Ele escaneia a pasta, encontra todos os arquivos que correspondem ao padrão, extrai ano e mês do nome, cria subpastas e move os arquivos. Simples e confiável.
Você pode facilmente adaptar este código às suas necessidades: alterar o padrão, adicionar registro de log ou fazer uma varredura recursiva de subpastas. Esta é a base para qualquer automação de tarefas em Java relacionada a arquivos.
2. Parsing e processamento de arquivos Excel (Apache POI)
Excel é a ferramenta "favorita" de contadores, gerentes e analistas. E muitas vezes você precisa coletar dados de 10 arquivos em um, ou vice-versa — dividir um arquivo grande em vários. A biblioteca Apache POI é o padrão de facto para trabalhar com Excel em Java.
Exemplo: Leitura de dados do Excel e geração de relatório 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<>();
// Lê três arquivos String[] files = {"sales_q1.xlsx", "sales_q2.xlsx", "sales_q3.xlsx"}; for (String fileName : files) {