Aplicación Java para dividir un archivo de texto muy grande en varios archivos más pequeños

jueves, 7 de agosto de 2014

En varias ocasiones he tenido que lidiar con archivos de texto extremadamente largos, con miles de líneas de texto, y en una de esas veces me tocó un archivo de Log con cientos de miles de líneas que mis editores de texto en Windows no podían abrir, y los que si lo lograban, no me permitían manipular el archivo sin antes quedarse congelados. Aunque encontré algunas herramientas en línea que podían abrir el archivo y permitirme leer, no me permitían manipularlo.

Mi solución, para mi caso particular, fue dividir el archivo en varios archivos más pequeños, ya que era un Log de transacciones de una aplicación y solo necesitaba depurar usando las entradas del log. Lo que hice fue escribir un pequeño programa en Java. Hace poco le agregué una interfaz gráfica para facilitar su uso.

Para utilizar esta herramienta deberás contar con lo siguiente:

  1. Tener instalado el JRE 6 de Java. el común de los equipos ya deben tenerlo instalado. Solo deberás tener por seguro que tienes la versión 6.
  2. Descargar la herramienta desde el repositorio en GitHub.
  3. Descomprimir el archivo ZIP en una ubicación que conozcas. Por ejemplo, en C:\Users\jesfre\Documents\text-splitter-pack. En tu caso sería tu nombre de usuario.
  4. Entrar a la carpeta y hacer doble-clic en el archivo run.bat. Deberá abrirse una ventana de comandos y ejecutarse automáticamente una pequeña interfaz gráfica similar a esta:
  1. En esta ventana deberás:
  • Seleccionar el archivo de texto muy grande que quieres dividir.
  • Seleccionar la carpeta donde quieres que se guarden los archivos más pequeños que se generarán como resultado de la división del archivo grande.
  • Asignar la cantidad máxima de líneas que deberá tener cada archivo dividido. Por ejemplo, si el archivo grande tiene 1200 líneas de texto, y quieres que se generen 10 archivos más pequeños, deberás asignar en Set the number of lines per file: la cantidad de 120.
  • Hacer clic en Save files para generar los nuevos archivos. En mi caso, el archivo se llama prueba_archivo grande.txt y contiene 389 líneas de texto.
  • Al terminar deberás poder ver los resultados de la siguiente forma:

Para ver tus archivos, navega hasta la carpeta que seleccionaste en Target folder... y verás los nuevos archivos que han sido generados recortando el archivo más grande.


Para terminar, simplemente cierra la ventana de la aplicación.

Esta herramienta funciona con cualquier archivo que contenga texto plano, como archivos de tipo .txt, .csv, entre otros.

Podrás ver que es una herramienta muy simple. Ahora te invito a compartirla y mejorarla, pues es de código abierto y está disponible en https://github.com/jesfre/file-splitter.





4 comentarios:

Daniel Bruno dijo...

hOLA, SERÁ QUE PODRIA DIVIR EL TEXTO POR LINEAS DE LETRAS TODAS EN MAYUSCULAS? ES DECIR QUE EL PROGRAMA DETECTE LAS LINEAS QUE ESTAN TODAS LAS LETRAS EN MAYUSCULAS Y ALLI HACIA ABAJO DIVIDE EN UN ARCHIVO HASTA DONDE CONSIGA OTRA LINEA TODA EN MAYÚCULA. GRACIAS Y BUEN APORTE.

Jesfre dijo...

Gracias.
Mira, ahora no puedo, pero el código fuente está disponible en https://github.com/jesfre/file-splitter, así que puedes tomarlo y modificarlo a tu conveniencia.

Anónimo dijo...

Gracias, funciona perfecto!!!

Anónimo dijo...

Hola, gracias por la aplicación, buen trabajo.

Solo quería comentarte si lo ves conveniente y no es mucho trabajo para la próxima versión vendría muy bien implementar el número de filas que quieres extraer,
1 a 100, solo las 500 primeras,

Gracias y saludos Jesfre