Lectura de archivos
Ya nos habíamos conocido por unas preguntas que te hice sobre un juego de ahorcado que estaba programando.
Bueno, la verdad es que aún no lo termino y me topé con un nuevo problema:
Tengo un archivo de texto con más de 90000 palabras que es mi fuente de palabras para el ahorcado (las que hay que ir adivinando), ahora bien, la idea es leer una linea del archivo y devolver la palabra (hay una por linea separadas por un ENTER) esto lo probé con un bucle que recorre todo el archivo, claro que lo tuve que detener antes de terminar porque es muy largo el archivo.
Yo lo que estoy haciendo es usar un BufferedReader combinado con un FilerReader y uso el método readLine() del Buffered... Ahora lo que yo realmente necesito es poder especificar la linea a leer, la cual la selecciono al azar con Math. Random();
Se me ocurrió una posible solución, pero podría llegar a tomar MUCHO tiempo.
Esto es hacer un bucle desde la linea una a la elegida e ir leyéndolas todas y almacenándolas en un string (se sobreescribe en cada iteración) hasta que llegue a la linea deseada y me quedo con ese valor; claro, esto es útil si tengo que recorrer 50 lineas, pero si debo recorrer 85326 me va a tomar algunos minutos, sino unas horas!
Solo quería ver si se te ocurría algo mejor y por su puesto más RÁPIDO.
Bueno, la verdad es que aún no lo termino y me topé con un nuevo problema:
Tengo un archivo de texto con más de 90000 palabras que es mi fuente de palabras para el ahorcado (las que hay que ir adivinando), ahora bien, la idea es leer una linea del archivo y devolver la palabra (hay una por linea separadas por un ENTER) esto lo probé con un bucle que recorre todo el archivo, claro que lo tuve que detener antes de terminar porque es muy largo el archivo.
Yo lo que estoy haciendo es usar un BufferedReader combinado con un FilerReader y uso el método readLine() del Buffered... Ahora lo que yo realmente necesito es poder especificar la linea a leer, la cual la selecciono al azar con Math. Random();
Se me ocurrió una posible solución, pero podría llegar a tomar MUCHO tiempo.
Esto es hacer un bucle desde la linea una a la elegida e ir leyéndolas todas y almacenándolas en un string (se sobreescribe en cada iteración) hasta que llegue a la linea deseada y me quedo con ese valor; claro, esto es útil si tengo que recorrer 50 lineas, pero si debo recorrer 85326 me va a tomar algunos minutos, sino unas horas!
Solo quería ver si se te ocurría algo mejor y por su puesto más RÁPIDO.
1 Respuesta
Respuesta de jbellota
1