在for循环后输入未写入文件

时间:2013-11-16 17:25:05

标签: java

import java.util.Scanner; import java.io。*;

公共类Kazarian_MadLibs {

public static void main(String[] args) throws IOException {

    Scanner keyboard = new Scanner(System.in);

    File file = new File("Mad Libs 1.txt");

    Scanner inputFile = new Scanner(file);

    System.out.println("Please provide a word for each of the following: ");

    PrintWriter answers = new PrintWriter("answers.txt");

    inputFile.nextLine();

    for (int i = 0; i < 18; i++)
    {   
        System.out.println(inputFile.nextLine());
        keyboard.next();
        answers.println(keyboard.nextLine());
        answers.close();

    }
for循环完成所有18行后,它不会写任何我对“answers.txt”文件的答案。我在这做错了什么?感谢

4 个答案:

答案 0 :(得分:3)

close语句移出for循环,这样您就不会在每次迭代中关闭PrintWriter。此外,您每次迭代都会从Scanner实例读取两次 - 只需读取一次值并写入文件

for (int i = 0; i < 18; i++) {
    System.out.println(inputFile.nextLine());
    String answer = keyboard.nextLine(); // Assign variable here
    answers.println(answer);
}

answers.close();

答案 1 :(得分:3)

您在循环的每次迭代中close编写者answers

答案 2 :(得分:0)

在第一次循环之后,你正在关闭作家。循环完成后,在循环结束后移动answers.close();关闭编写器。

答案 3 :(得分:0)

answers.close();移到循环之外。它应该可以正常工作。