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

yme*_*ene 0 java file while-loop

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

URLLinks

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();

}
Run Code Online (Sandbox Code Playgroud)

我只想打印一次sCurrentLine,但它会无限打印出来.我认为问题在于返回findFile(),但我不知道如何修复它.

干杯

再次更新UPDATE UPDATE

我通过将方法设置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();
    }
}
Run Code Online (Sandbox Code Playgroud)

hmj*_*mjd 7

它是无限递归,因为它findFile()总是调用自身.除了return findFile();必需的东西之外,还不清楚函数的用途是什么,也许只是:

return sCurrentLine; // with 'sCurrentLine' declared prior try
Run Code Online (Sandbox Code Playgroud)

循环似乎是不需要的,因为它在读取第一行后退出.