Pregunta

yo y mi amigo está trabajando en un programa para nuestra orientada a objetos curso de programación en la universidad. Estamos tratando de escribir texto en un archivo como una base de datos para obtener información. El problema es que cuando tratamos de leer las líneas correspondientes con BufferedReader que parece que no puede encontrar la manera de leer las líneas correctas. Las únicas funciones disponible parecen ser leídos (), que lee un carácter solamente. readLine () lee solamente una línea (no la línea que queremos leer. skip () sólo se salta un número de caracteres especificados. Alguien tiene una idea de cómo podríamos decirle al programa qué línea queremos leer? Nuestro método getAnswer () con el argumento int rowNumber es el que nosotros estamos tratando de hacer: Superclase: http://pastebin.com/d2d9ac07f Subclase es irrelevante (sobre todo porque no hemos escrito todavía). Por supuesto, es Java que estamos trabajando. Gracias de antemano.

¿Fue útil?

Solución

Usted tendrá que utilizar readLine(), hacer esto en un bucle, contar el número de líneas que ya ha leído hasta que haya alcanzado el número de línea que desea procesar.

No hay un método en BufferedReader u otra clase de biblioteca estándar que leerá el número de línea N de forma automática.

Otros consejos

Usa los lectores Buffered .readLine (); Método hasta llegar a los datos que necesita. Tire a la basura todo lo que no y luego almacenar los datos que necesita. Concedido esto no se effiecent debe hacer su trabajo.

readLine() en Java simplemente lee desde la memoria intermedia hasta que se encuentra con un carácter de nueva línea, por lo que no sería realmente no hay manera para que especifique que línea debe ser leída desde un archivo porque no hay manera para Java para saber exactamente cuánto tiempo cada línea es.

Esta razón es la razón por la que es difícil de usar skip() para saltar a una línea particular.

Puede ser que sea mejor para usted colocar a través de líneas utilizando readLine(), a continuación, cuando su contador es el lugar donde quiere que sea, comenzar a procesar.

String line = myBufferedReader.readLine();
for(int i = 1; i < whichLine && line != null; i++){
    line = myBufferedReader.readLine();
}

/* do something */
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top