The following code works fine except the code that is supposed to add numbers to an existing txt file (Fred56.txt
). He posted the:
PrintWriter outputfile = new PrintWriter(file);
outputfile.println(totalDeposit);
outputfile.close();
I tried to search for it but I cannot find the correct answer when it comes to ask the user the (Scanner) file name. I would like to add the totalDeposit
to the existing datas on the file witout erasing them.
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);
}
}
According to my understanding, you are asking for a solution to open a file in append mode. There are several ways to achieve that. You can use the following in code.
try{
PrintWriter outputfile = new PrintWriter(new BufferedWriter(new FileWriter (filename, true)));
outputfile.println(totalDeposit);
outputfile.close();
}catch(IOException ex){
// Handle your exception
}