Java FileWriter只写入循环中的最后一行。需要它来写所有输入的日志吗
我有一个JOptionPane,它会提示用户提问并接收随机生成的答案。我正在尝试编写一个记录所有问题和答案的文件,但FileWriter只记录最后一个问题和答案。以下是我的代码:Java FileWriter只写入循环中的最后一行。需要它来写所有输入的日志吗,java,Java,我有一个JOptionPane,它会提示用户提问并接收随机生成的答案。我正在尝试编写一个记录所有问题和答案的文件,但FileWriter只记录最后一个问题和答案。以下是我的代码: import javax.swing.JOptionPane; import java.util.Random; import java.io.*; public class Magic8Ball { public static void main(String [] args)throws Excepti
import javax.swing.JOptionPane;
import java.util.Random;
import java.io.*;
public class Magic8Ball {
public static void main(String [] args)throws Exception {
final String QUIT = "quit";
Random rand = new Random();
int max = 7;
int min = 0;
int randomNum;
FileWriter fw = new FileWriter("fortune.txt");
PrintWriter pw = new PrintWriter(fw);
BufferedWriter out = new BufferedWriter(fw);
String[] answers = new String[8];
String question = JOptionPane.showInputDialog(" Enter a question or " + QUIT + " to exit " );
Create8Ball(answers);
while (!question.equals(QUIT)) {
randomNum = rand.nextInt((max - min) + 1) + min;
System.out.println(answers[randomNum]);
pw.println("Question: " + question);
pw.println("Fortune Response: " + answers[randomNum]);
question = JOptionPane.showInputDialog(" Enter a question or " + QUIT + " to exit " );
}
pw.close();
System.exit(0);
}
public static void Create8Ball(String answers[]) throws Exception
{
FileReader fr = new FileReader ("answers.txt");
BufferedReader br = new BufferedReader (fr);
String dog = null;
int cat = 0;
while ((dog = br.readLine()) != null)
{
answers[cat] = dog;
cat++;
}
//close the input file
br.close();
}
}
附加到文件:
FileWriter fw = new FileWriter("fortune.txt", true);
您可能需要此构造函数
FileWriter(字符串文件名,布尔追加)
。它将构造一个FileWriter对象,给定一个文件名,其中布尔值指示是否追加写入的数据
可能这一个会起作用。
FileWriter fw=newfilewriter(“fortune.txt”,true);
谢谢!我拿出了BufferedWriter并在pw.close()之前添加了pw.flush();似乎正在做这项工作。