使用BufferedReader读取文本文件

合成:

我在使用BufferedReader时遇到问题

我想打印一个文本文件的6行:

public class Reader {

public static void main(String[]args) throws IOException{

    FileReader in = new FileReader("C:/test.txt");
    BufferedReader br = new BufferedReader(in);

    while (br.readLine() != null) {
        System.out.println(br.readLine());
    }
    in.close();

}

现在,从每次调用readLine()方法可以收集到的信息开始,它都会自动前进到下一行。

因此,我不能使用条件br.readLine()!= null,因为它已经将其前进了一行并且得到了输出:

Line 2
Line 4
Line 6

我使用什么条件来检查文本字段中是否还有新行。

提前致谢!

乔恩·斯基特(Jon Skeet):

这就是问题:

while (br.readLine() != null) {
    System.out.println(br.readLine());
}

您有两次调用readLine-第一个检查是否有一行(但将其读取并扔掉),第二个则读取下一行。你要:

String line;
while ((line = br.readLine()) != null) {
    System.out.println(line);
}

现在readLine() 每个循环迭代只调用一次,并且使用我们都读过的那行作为“我们完成了吗?” 和“打印出线”部分。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章