2 回答

TA貢獻(xiàn)1820條經(jīng)驗 獲得超10個贊
你不需要第一個FileWriter fileWriter = new FileWriter("Sorted output.txt");;這實際上是創(chuàng)建/覆蓋文件,之后您的 PrintWriter 再次打開它以進(jìn)行附加。
所以,只要改變
// ... omitting beginning
try {
FileWriter fileWriter = new FileWriter ("Sorted output.txt");
//BufferedWriter bufferedWriter = new BufferedWriter (fileWriter);
PrintWriter out = new PrintWriter (new FileWriter("Sorted output.txt", true));
do {
// ... omitting rest
至
// ... omitting beginning
try {
//BufferedWriter bufferedWriter = new BufferedWriter (fileWriter);
PrintWriter out = new PrintWriter (new FileWriter("Sorted output.txt", true));
do {
// ... omitting rest

TA貢獻(xiàn)1851條經(jīng)驗 獲得超5個贊
將 out.close() 移出循環(huán)
else {
System.out.println("Please enter a valid option i.e. 1,2 or 3");
tInput.next();
}
out.flush();
/* THIS -> out.close(); <- THIS */
//tInput.close();
}while (userSelection != optionThree);
out.close();
}
我試過你的代碼,你的問題不是文件被覆蓋,而是你在第一次迭代中關(guān)閉了輸出流。
添加回答
舉報