我不知道为什么我的循环一直无限循环..
URL链接
public String findFile() {
try (BufferedReader br = new BufferedReader(
new FileReader("urls.txt"))) {
String sCurrentLine;
if ((sCurrentLine = br.readLine()) != null) {
System.out.println(sCurrentLine);
break;
}
} catch (IOException e) {
e.printStackTrace();
}
return findFile();
}
我只想打印 sCurrentLine 一次,但它会无限地打印出来。 我认为问题出在 return findFile() 但我不知道如何解决它。
干杯
更新更新再次更新
我通过使用方法 findFile()
解决了这个问题至void
,并从 while 循环更改为 if 语句
URLLinks 更新代码
public void findFile() {
try (BufferedReader br = new BufferedReader(
new FileReader("urls.txt"))) {
String sCurrentLine;
while ((sCurrentLine = br.readLine()) != null) {
System.out.println(sCurrentLine);
}
} catch (IOException e) {
e.printStackTrace();
}
}
最佳答案
这是无限递归,因为 findFile()
总是调用自身。除了 return findFile();
之外,还需要其他东西,但尚不清楚该函数的目的是什么,也许只是:
return sCurrentLine; // with 'sCurrentLine' declared prior try
循环似乎不需要,因为它在读取第一行后退出。
关于java - 为什么我的 while 循环不停止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16776042/