2016-03-24 1 views
0

J'essaye d'appeler une méthode d'une classe différente, ainsi elle peut apparaître dans mon bufferwriter. Mon code est ci-dessous:BufferedWriter n'écrit pas en 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- classe 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(); 
}  

Je suis en train d'obtenir la méthode de base Information de la classe Client appeaing dans le Bufferwriter, mais ce qui se passe est que N'écris rien, il est juste vide, si je sors le BasicInfo du bufferwriter alors tout est écrit et affiché dans la note parfaitement mais si je l'ajoute dans rien n'apparaît dans le fichier txt.

+1

@ 3kings vous n'avez pas besoin. –

+0

Bien que le tampon ne fasse rien parce qu'une seule écriture est effectuée. –

+1

Je suppose que le code produit une erreur, qui vous manque. Je passerai le code dans votre débogueur et vérifierai le contenu de 's' –

Répondre

0

Assurez-vous que le chemin d'accès absolu à votre fichier est correct. Le problème que vous avez est Java ne peut pas reconnaître le chemin d'accès au fichier que vous utilisez.

Changer le format de fichier:

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

J'ai testé votre BufferedWriter & FileWriter, il travaille.

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

sortie est:

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