java - 为什么我的 while 循环不停止?

标签 java file while-loop

我不知道为什么我的循环一直无限循环..

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/

相关文章:

java - 如何获取 HttpOnly cookie

java - Spring 应用程序中用于 REST 和 Ajax 序列化的不同 JSON 配置

java - Xpages。使用Java

flutter - File.writeAsBytes 的 'flush' 参数在 Dart.io 中有什么作用?

php - 在一次 while 循环中从 mysql 数据库转换字符串

switch 子句中的 C while 语句

c - 循环创建随机数,从现有数组读取,然后创建新数组——卡在 While 循环中

java - 使用 JPA/ORM 生成数据库模式是个坏主意吗?

swift - 输入类型=文件在 OS X 应用程序的 WebView 中不起作用

python - 如何迭代固定数量的文件直到文件夹的最后一个文件?