2016-03-24 3 views
0

Я пытаюсь вызвать метод из другого класса, поэтому он может отображаться в моем буферерете. Мой код ниже:BufferedWriter, не записывающий в Java

public void Deposit(double amount) { 
    Bank bank = new Bank(); 
    ArrayList<Client> customers = bank.getCustomers(); // Gets Customer Info from Bank 

    if (amount <= 0) { 
     System.err.println("You can not deposit that"); 
     return; 
    } else { 
     checkInterest(0); // resets interest rates 
     amount = amount + amount * interest; //Applies interest to deposited amount 
     balance += amount; // Balance is == amount 

     System.out.println("You have deposited £" + amount + "Interest Rate of " + (interest * 100) + "%"); 
     System.out.println("You now have a balance of £" + balance); 
    } 

    try { 
     FileWriter ac = new FileWriter("D:\\programming\\Java\\JavaBanking\\Transactions.txt", true); 
     BufferedWriter out = new BufferedWriter(ac); 

     String s = String.format("You have deposited the following amount:%n" + "£" + String.valueOf(amount) + "%nIn the account number:%n" + 
      getAccountNumber() + "%nAt: " + LocalDateTime.now() + "%nYour current balance is: £" + balance + "%n" + toString()); 

     out.write(s); 
     //fw.write(t); 
     out.close(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
}  

BasicInfor- класс Client `

public class Client { 
    private Object fullName; 
    private Account account; 

    public Client(String fullName, Account account) { // Passes in First Name and Account Type 
     // TODO Auto-generated constructor stub 
     this.fullName = fullName; // Creates Fields 
     this.account = account; // Adds account to Customers 
    } 
} 

public String BasicInfo() { //Return 
    return "FullName: " + fullName + "\n" + 
     account + "Sort Code :" + SortCode(); 
}  

Я пытаюсь получить метод Basic Info из класса Client appeaing в Bufferwriter, но то, что происходит, что это не пишет ничего, что просто пусто, если я выберу BasicInfo из буфера, тогда все будет записано и отобразится в заметке отлично, но если я добавлю его ничем не появится в txt-файле.

+1

@ 3kings вам не нужно. –

+0

Хотя буфер ничего не делает, потому что выполняется только одна запись. –

+1

Я подозреваю, что код создает ошибку, которую вам не хватает. Я бы выполнил код в вашем отладчике и проверил содержимое 's' –

ответ

0

Убедитесь, что абсолютный путь к файлу, предоставленный вами, является правильным. Проблема, с которой вы сталкиваетесь, - Java, не может распознать путь к файлу, который вы используете.

Изменить формат файла:

String path = "D:\\programming\\Java\\JavaBanking\\Transactions.txt"; 
path = path.replaceAll("\\", "/"); 
FileWriter ac = new FileWriter(path,true); 

Я проверил ваш BufferedWriter & FileWriter, это работает.

public class Main{ 
     public static void main(String args[]) throws IOException{ 
      FileWriter ac = new FileWriter("/Users/haifzhan/Transactions.txt",true); 
      BufferedWriter out = new BufferedWriter(ac); 

      String s = String.format("You have deposited the following amount:%n" + "£" + String.valueOf(13) + "%nIn the account number:%n"+ 
        1 + "%nAt: " + LocalDateTime.now() +"%nYour current balance is: £" + 333 +"%n" + "ddd"); 
      System.out.println(s); 

      out.write(s); 
      out.close(); 
     } 
    } 

Выход:

You have deposited the following amount: 
£13 
In the account number: 
1 
At: 2016-03-24T12:38:19.822 
Your current balance is: £333 
ddd 
Смежные вопросы