Error en Memoria
Publicado por juan David (14 intervenciones) el 31/07/2007 17:32:36
hOLAS::
Lo que ocurre es que se me presento el siguiente problema analizando y procesando archivos de texto: me sale el siguiente error cuando el archivo de texto a analizar es grande, mas o menos de unas 30 Megas o más.. Exception in thread "main" java.lang.OutOfMemoryError, e investigado un poco acerca del asunto y se que existe el comando java -Xmx_m para aumentar la memoria para completar el procesamiento, pero la verdad no es una solución optima ya que al servidor en este momento ! no le cabe un tinto a cucharadas . El archivo se va leyendo linea a linea secuencialmente y compara cadenas contra un estructura de Strings, cuando las lineas corresponden, éstas se van guardando a una lista para posteriormente generar un archivo único de salida... pero cuando el archivo es muy grande... ya saben lo que ocurre.. Gracias por su atención y cualquier idea será bienvenida.
BufferedReader DataInput = new BufferedReader(Log);
LineasLeidas = new ArrayList();
String LineadeDatos;
while((LineadeDatos = DataInput.readLine()) != null)
LineasLeidas.add(LineadeDatos);
Cuando el archivo es muy grande se acaba la memoria para seguir leyendo: puse un catch y catch ( OutOfMemoryError e ) y ahy me sale el error.
Es necesario almacenar las lineas leidas en un arraylist... y pasa que esta estructura no alcanza a almacenar el numero de lineas entrantes.. se revienta en el proceso y no da la capacidad necesaria..El archivo es necesario leerlo hasta el final y secuencialmente.. el rollo en el que estoy pegado y es q debo decirle a la estructura la capacidad maxima de almacenamiento.
Lo que ocurre es que se me presento el siguiente problema analizando y procesando archivos de texto: me sale el siguiente error cuando el archivo de texto a analizar es grande, mas o menos de unas 30 Megas o más.. Exception in thread "main" java.lang.OutOfMemoryError, e investigado un poco acerca del asunto y se que existe el comando java -Xmx_m para aumentar la memoria para completar el procesamiento, pero la verdad no es una solución optima ya que al servidor en este momento ! no le cabe un tinto a cucharadas . El archivo se va leyendo linea a linea secuencialmente y compara cadenas contra un estructura de Strings, cuando las lineas corresponden, éstas se van guardando a una lista para posteriormente generar un archivo único de salida... pero cuando el archivo es muy grande... ya saben lo que ocurre.. Gracias por su atención y cualquier idea será bienvenida.
BufferedReader DataInput = new BufferedReader(Log);
LineasLeidas = new ArrayList();
String LineadeDatos;
while((LineadeDatos = DataInput.readLine()) != null)
LineasLeidas.add(LineadeDatos);
Cuando el archivo es muy grande se acaba la memoria para seguir leyendo: puse un catch y catch ( OutOfMemoryError e ) y ahy me sale el error.
Es necesario almacenar las lineas leidas en un arraylist... y pasa que esta estructura no alcanza a almacenar el numero de lineas entrantes.. se revienta en el proceso y no da la capacidad necesaria..El archivo es necesario leerlo hasta el final y secuencialmente.. el rollo en el que estoy pegado y es q debo decirle a la estructura la capacidad maxima de almacenamiento.
Valora esta pregunta


0