1

我的文件程序工作正常。它使用我提交的内容创建一个 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();

}
4

2 回答 2

6

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

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

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

System.out.println(fromFile.nextLine());

通过调用 nextLine() 你告诉 Scanner 你想要消耗所有字符直到下一个'\n'(换行符)字符。有关详细信息,请参阅Scanner类。

于 2012-11-09T00:46:45.270 回答
2

您实际上需要在循环内获取一行,否则它将报告有下一行(第一行)。

于 2012-11-09T00:46:46.077 回答