1

我和我的伙伴正在为我们大学的面向对象编程课程开发一个程序。我们正在尝试将文本写入文件作为信息数据库。问题是当我们尝试使用 BufferedReader 读取相应的行时,我们似乎无法弄清楚如何读取正确的行。唯一可用的函数似乎是 read(),它只读取一个字符。readLine() 只读取一行(不是我们希望它读取的行。skip() 只跳过指定的一些字符。有人知道我们如何告诉程序我们要读取哪一行吗?我们的方法 getAnswer()使用参数 int rowNumber 是我们正在尝试做的:超类:http: //pastebin.com/d2d9ac07f 子类无关紧要(主要是因为我们还没有编写它)。当然,我们正在使用的是 Java。预先感谢。

4

3 回答 3

6

您必须使用readLine(), 在循环中执行此操作,计算您已经阅读的行数,直到您达到要处理的行号。

没有任何方法BufferedReader或其他标准库类会自动为您读取行号 N。

于 2009-12-08T14:17:42.210 回答
3

使用缓冲阅读器 .readLine(); 方法,直到你得到你需要的数据。扔掉你不需要的所有东西,然后存储你需要的数据。当然,这不是有效的,它应该可以完成您的工作。

于 2009-12-08T14:17:36.617 回答
2

readLine()在 Java 中只是从缓冲区中读取,直到遇到换行符为止,因此您实际上无法指定应从文件中读取 哪一行,因为 Java 无法确切知道每行的长度。

这也是为什么很难使用skip()跳转到特定行的原因。

使用 循环遍历行可能会更好readLine(),然后当您的计数器位于您想要的位置时,开始处理。

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

/* do something */
于 2009-12-08T14:19:24.890 回答