Estoy interesado en analizar un archivo de texto bastante grande en Java (1.6.x) y me preguntaba qué enfoque (s) se consideraría una mejor práctica.Analizando archivos de texto grandes en tiempo real (Java)
El archivo probablemente tendrá aproximadamente 1Mb de tamaño y constará de miles de entradas en la línea de;
Entry
{
property1=value1
property2=value2
...
}
etc.
Mi primer instinto es el uso de expresiones regulares, pero no tengo ninguna experiencia previa en el uso de Java en un entorno de producción, y así estoy seguro de lo poderoso que las clases son java.util.regex .
Para aclarar un poco, mi aplicación va a ser una aplicación web (JSP) que analiza el archivo en cuestión y muestra los diversos valores que recupera. Solo hay un archivo que se analiza (reside en un directorio de terceros en el host).
La aplicación tendrá un uso bastante bajo (tal vez solo un puñado de usuarios que la usen un par de veces al día), pero es vital que cuando la usen, la información se recupere lo más rápido posible.
Además, ¿hay alguna precaución que tomar al cargar el archivo en la memoria cada vez que se analiza?
¿Alguien puede recomendar un enfoque para tomar aquí?
Gracias
¿Quiere decir en tiempo real o rápidamente? Los dos son muy diferentes. Realtime implica que usted devuelve una respuesta para cada entrada sin esperar más información. Esto a menudo es más lento que el procesamiento por lotes. –
Además, 1 meg ya no se considera grande a menos que esté corriendo en una máquina con menos de 64 megas de memoria. –
Quiero decir rápidamente: quiero que se envíe una solicitud desde la IU web al servidor, lo que indicará que debe analizar el archivo y devolver los resultados (en el tipo de estructura de datos que sea apropiado) y luego procesarlos para mostrarlos en la interfaz de usuario. –