1

ファイル プログラムは問題なく動作します。提出した内容でtxtファイルを作成します。しかし、コンソールに「true」が無限に表示されるのはなぜですか?

ここに画像の説明を入力

        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()を呼び出すことにより、次の'\n'(改行)文字までのすべての文字を消費するようにScannerに指示します。詳細については、Scannerクラスを参照してください。

于 2012-11-09T00:46:45.270 に答える
2

実際にループ内に行を取得する必要があります。そうしないと、次の(最初の)行があることが報告されます。

于 2012-11-09T00:46:46.077 に答える