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