2016-03-24 14 views
0

Farklı bir sınıftan bir yöntemi çağırmaya çalışıyorum, bu yüzden bu arabamda görünebilir. Benim kod aşağıda:BufferedWriter Java'da yazmıyor

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(); 
    } 
}  

Ben Bufferwriter içinde appeaing sınıf Müşteriden Temel Bilgi yöntemini almaya çalışırken, ama ne olur öyle mi am `

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(); 
}  

BasicInfor- Müşteri sınıfı Bir şey yazmıyor, sadece boş bir arabelleğe aldığında BasicInfo'yı çıkarırsam her şey yazılır ve notta mükemmel bir şekilde görüntülenir, ancak hiçbir şey eklemezsem txt dosyasında görünür.

+1

3kings @ sen gerekmez. –

+0

Arabellek bir şey yapmasa da, yalnızca bir yazma gerçekleştirildiğinden. –

+1

Kodun eksik olduğunu düşündüğünüz bir hata oluşturduğundan şüphelenirim. Hata ayıklayıcınızdaki koddan geçip 's ' –

cevap

0

Lütfen sağladığınız mutlak dosya yolunun doğru olduğundan emin olun. Sahip olduğunuz sorun, kullandığınız dosya yolunu Java’yı tanıyamaz.

dosya biçimini değiştirme :

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

Ben senin & FileWriterBufferedWriter, işe yarıyor test etti.

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(); 
     } 
    } 

Çıktı geçerli:

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