hasNextLine()在While循环中始终返回true

问题描述 投票:0回答:1

此问题与我之前问过的关于同一程序的问题有关,可以在这里查看:

Writing to a file code causing an endless loop

我已经解决了上面的问题,并将函数重写为while循环,而不是while,但是现在我遇到了相反的问题,就是什么也没有写到文件中。我插入了一条打印语句来告诉我hasNextLine的状态,即使输入了空行,也就是我希望编写者终止时,它始终返回true。

这里是更新的代码:

import java.util.Scanner;
import java.io.FileNotFoundException;
import java.io.PrintWriter;;

public class Lab_Week8_WriteAStory {
    public static void main(String[] args) throws FileNotFoundException  {  

        Scanner whatToWrite = new Scanner (System.in);
        PrintWriter writing = new PrintWriter ("Read and Write Files/output.txt");

        while (whatToWrite.hasNextLine()){
            String writeToFile = whatToWrite.nextLine();
            writing.println(writeToFile);
            System.out.println (whatToWrite.hasNextLine());
        }

        writing.close();
        whatToWrite.close();
    }
}

[这个问题与我以前问过的关于同一程序的问题有关,可以在这里查看:写入导致无限循环的文件代码,我已经解决了上面的问题,并且...]]

java while-loop java.util.scanner filewriter
1个回答
0
投票

检查Scanner.hasNextLine()的文档:

如果此扫描仪的输入中还有另一行,则返回true。 此方法在等待输入时可能会阻塞

© www.soinside.com 2019 - 2024. All rights reserved.