尝试在 Java 中添加数字时擦除我在 txt 文件中的数据

Erasing my data on the txt file while trying to add numbers in Java

除了应该将数字添加到现有 txt 文件 (Fred56.txt) 的代码外,以下代码工作正常。他发布了:

PrintWriter outputfile = new PrintWriter(file);
outputfile.println(totalDeposit);
outputfile.close();

我试图搜索它,但在询问用户(扫描仪)文件名时找不到正确答案。我想将 totalDeposit 添加到文件中的现有数据而不删除它们。

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

public class TestSavingsAccount {

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

        double totalDeposit = 0;
        double totalInterest = 0 ;
        double totalWithdraw = 0;
        String filename ;

        Scanner keyboard = new Scanner(System.in);

        System.out.println("Enter the annual interest rate");
        double userAnnualinterest = keyboard.nextDouble();

        System.out.println(" Enter the starting balance");
        double userStartingbalance = keyboard.nextDouble();

        System.out.println(" Enter the number of months");
        int userNumberMonths = keyboard.nextInt();

        SavingsAccount account1 = new SavingsAccount(userStartingbalance);
        account1.setAnnualInterest(userAnnualinterest);

        for(int currentmonth = 1 ; currentmonth <= userNumberMonths; currentmonth ++ )
        {
            System.out.println("How much did you deposit during the month ?" + currentmonth);
            double depositAmount = keyboard.nextDouble();

            account1.deposit(depositAmount);
            totalDeposit += depositAmount ;

            System.out.println("How much do you want to withdraw ?" + currentmonth);
            double userWithdraw = keyboard.nextDouble();
            account1.withdraw(userWithdraw);
            totalWithdraw += userWithdraw ;

            totalInterest += account1.addMonthlyInterest();


            keyboard.nextLine() ;

            System.out.println(" What is the file name ?");
            filename = keyboard.nextLine() ;
            File file = new File(filename);

            PrintWriter outputfile = new PrintWriter(file);
            outputfile.println(totalDeposit);
            outputfile.close();

        }

        System.out.println(" The final balance of the end " + userNumberMonths + "is" +
            account1.getBalance() + " total amount of withdraw " + totalWithdraw +
            " Total amount of deposit " +totalDeposit + " The total of interest" + totalInterest);

    }

}

据我了解,您要求的是一种以追加模式打开文件的解决方案。 有几种方法可以实现这一目标。您可以在代码中使用以下内容。

try{
   PrintWriter outputfile = new PrintWriter(new BufferedWriter(new FileWriter (filename, true)));
   outputfile.println(totalDeposit);
   outputfile.close();
   }catch(IOException ex){
// Handle your exception
   }