使用BufferedReader读取所有行
我想使用BufferedReader在控制台中输入多行文本,然后单击“ Enter”以查找整个文本长度的总和。问题在于,似乎我进入了一个无限循环,当我按“
Enter”键时,程序并没有结束。我的代码如下:
InputStreamReader instream = new InputStreamReader(System.in);BufferedReader buffer = new BufferedReader(instream);
line= buffer.readLine();
while (line!=null){
length = length + line.length();
line= buffer.readLine();
}
你能告诉我我在做什么错吗?
回答:
阅读所有行的惯用方式是while ((line = buffer.readLine()) != null)
。另外,我建议try-with-
resources发表声明。就像是
try (InputStreamReader instream = new InputStreamReader(System.in); BufferedReader buffer = new BufferedReader(instream)) {
long length = 0;
String line;
while ((line = buffer.readLine()) != null) {
length += line.length();
}
System.out.println("Read length: " + length);
} catch (Exception e) {
e.printStackTrace();
}
如果你想,当你收到一个空行来结束循环,在添加一个测试为while
循环
while ((line = buffer.readLine()) != null) { if (line.isEmpty()) {
break;
}
length += line.length();
}
JLS-14.15。该break
声明说:
一条
break
语句将控制权从一个封闭的语句中移出。
以上是 使用BufferedReader读取所有行 的全部内容, 来源链接: utcz.com/qa/433063.html