假设我有以下文件
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);
}
}