如何修复检查Scanner是否有另一行输入的循环?

App*_*sei 1 java io file-io

我的文件程序工作正常.它创建一个包含我提交的内容的txt文件.但是,为什么我的控制台无限显示"真实"?

在此输入图像描述

        Scanner input = new Scanner(System.in);
        System.out.println("What would you like the file to be called?");
        String output = input.nextLine();

        if (!output.contains(".txt")) {
            output += ".txt";
        }

        PrintWriter out = new PrintWriter(output);
        System.out.println("What would you like to print to the file? ");
        String fileContents = input.nextLine();
        out.print(fileContents);
        out.close();

        Scanner fromFile = new Scanner(new File(output));

        System.out.println("The File " + output + " contains: ");

        while (fromFile.hasNextLine()) {
            System.out.println(fromFile.hasNextLine());
        }

        System.out.println("Finished reading and writing from file.. ");
        input.close();
        fromFile.close();

}
Run Code Online (Sandbox Code Playgroud)

kur*_*bot 6

你实际上并没有检索下一行

while (fromFile.hasNextLine()) {
    System.out.println(fromFile.hasNextLine());
}
Run Code Online (Sandbox Code Playgroud)

您的print语句只是重新检查它是否有换行符.我想你的意思是

System.out.println(fromFile.nextLine());
Run Code Online (Sandbox Code Playgroud)

通过调用nextLine(),您告诉Scanner您要使用直到下一个'\n'(换行符)字符的所有字符.有关更多信息,请参阅Scanner类.