Tips – commons-io-x.jar

En muchas soluciones de la vida real es necesario manipular y leer el contenido de archivos y es muy común que en un principio se trate de utilizar solo las clases del paquete java.io, esto esta bien si se quiere optimizar la lectura o manipulación de archivos o se requiere una solución a un problema especifico. Sin embargo existen los Apache Commons, que es un conjunto de librerías para una gran variedad de problemas y una de esas librerías es commons-io.jar que viene con la clase FileUtils y que facilita el manejo de archivos. Aquí enlistamos algunas de las funciones de esa clase que la hacen bastante útil.

  • Permite escribir a un archivo
  • Leer desde un archivo
  • Crear directorios, incluyendo directorios padres (de forma recursiva)
  • Copiar archivos y directorios
  • Borrar archivos y directorios
  • Covertir hacia o desde una URL
  • Listar archivos y directorios con filtros y extensión
  • Comparar el contenido de archivos
  • Obtener el última fecha de actualizacion
  • Calcular checksum, entre otras.

Aqui un pequeño ejemplo para convertir un archivo de texto a String o traer una lista de archivos desde un directorio y filtrando extensiones.

import org.apache.commons.io.FileUtils;

import java.io.File;
import java.io.IOException;
import java.util.Collection;
import java.util.Iterator;

public class Prueba {
public static void main(String[] args) {
//Leer el contenido de un archivo de texto y depositarlo en un String
File archivo = new File("ejemplo.txt");

//Traer una lista de archivos filtrando la extensión
File root = new File("/proy");
try {
// Leer el contenido de un archivo y copiarlo a un String
String content = FileUtils.readFileToString(archivo);
System.out.println("File content: " + content);

//Obtener una lista de archivos de forma recursiva contenida en un directorio
String[] extensiones = {"xml", "java", "dat"};
boolean recursivo = true;

Collection lisaArchivos = FileUtils.listFiles(root, extensiones, recursivo);
for (Iterator iterator = lisaArchivos.iterator(); iterator.hasNext();) {
File archivoAux = (File) iterator.next();
System.out.println("> " + archivoAux.getAbsolutePath());
}
} catch (IOException e) {
e.printStackTrace();
}
}
}

Deja un comentario

2 + six =