假设我有以下文件

Hej Hej Hej
A A A A


在与A的行之后换行。

我的问题是代码

while (in.hasNextLine()) {
    String line = in.nextLine();
    if (in.hasNextLine()) {
        out.println(line);
    }
    else {
        out.print(line);
    }
}


不会在in.hasNextLine()中检测到此多余的行,因此我错过了输出文件中的换行符(我正在执行文件串联程序)。可能是什么问题?

最佳答案

您两次调用.hasNextLine(),而您仅阅读一次“下一行”。

您的代码应该是:

while (in.hasNextLine()) {
    String line = in.nextLine();
    out.println(line);
}


或者,如果您要在循环中再次检查是否存在下一行,则应执行此操作(我发现这样做不够干净,因为它与上面的代码段完全相同):

while (in.hasNextLine()) {
    String line = in.nextLine();
    if (in.hasNextLine()) {
        String nextLine = in.nextLine();
        out.println(line);
    } else {
        out.print(line);
    }
}

07-27 19:54