2013-02-16 82 views
0

鑑於我的代碼:輸出控制檯到文本文件? - Java的

import java.util.Scanner; 

public class AccountTest { 

    public static void main(String[] args) { 
     Account account1 = new Account(50.00); 
     Account account2 = new Account(0.00); 

     System.out.printf("account1 balance: $%.2f\n", account1.getBalance()); 
     System.out.printf("account2 balance: $%.2f\n\n", account2.getBalance()); 

     Scanner input = new Scanner(System.in); 

     System.out.print("Enter withdrawal amount for account1: "); 

     double withdrawalAmount = input.nextDouble(); 

     System.out.printf("\nsubtracting %.2f from account1 balance\n", 
       withdrawalAmount); 

     account1.debit(withdrawalAmount); 

     System.out.printf("account1 balance: $%.2f\n", account1.getBalance()); 
     System.out.printf("account2 balance: $%.2f\n\n", account2.getBalance()); 

     System.out.print("Enter withdrawal amount for account2: "); 
     withdrawalAmount = input.nextDouble(); 
     System.out.printf("\nsubtracting %.2f from account2 balance\n", 
       withdrawalAmount); 
     account2.debit(withdrawalAmount); 

     System.out.printf("account1 balance: $%.2f\n", account1.getBalance()); 
     System.out.printf("account2 balance: $%.2f\n", account2.getBalance()); 
    } 
} 

我怎樣才能讓我的「System.out.printf」轉儲到一個文件中(如傾倒在不刪除該文件的內容)?或者可能爲每個實例創建單獨的文件。任何幫助感謝初學者在這裏。謝謝。

+3

已經有答案了。 http://stackoverflow.com/questions/1994255/how-to-write-console-output-to-a-txt-file?rq=1 – Kaliber64 2013-02-16 03:02:34

+0

如果我沒有錯誤,將讀取輸入行然後保存到文本文件。請注意,在我的代碼中,我不打算在控制檯上輸入任何內容。 – Alexander 2013-02-16 03:07:37

+0

@ user2077545查看該問題中最受好評的答案:http://stackoverflow.com/a/1994283/1211906 – 2013-02-16 03:11:00

回答

2

1)運行程序

java AccountTest >> test.txt 

2)時,你可以將stdout到一個文件,你可以在你的程序

PrintStream out = new PrintStream(new FileOutputStream("test.txt", true)); 
    System.setOut(out); 

3),你可以使用Java的開始重新分配標準輸出。 io.PrintWriter而不是System.out

PrintWriter out = new PrintWriter(new FileWriter("test.txt", true)); 
    out.printf("account1 balance: $%.2f\n", account1.getBalance()); 
+1

該行給了我錯誤:未報告異常IOExecption;聲明爲拋出 – Alexander 2013-02-16 03:13:17

+0

這將幫助:main(String [] args)拋出異常 – 2013-02-16 03:22:07

+0

工作正常,但它仍然用每個新實例替換轉儲文件的內容。 – Alexander 2013-02-16 03:25:25

1

這取決於你如何運行這個程序。如果你有一個POSIX shell,你可以將它的標準輸出重定向到一個文件。

下將追加到一個日誌文件:

$ java -jar myjar.jar >> log 

這一個每次將創造一個新的時代過時的日誌文件($(…)可能是一個特定的bash特徵,我不知道) :

$ java -jar myjar.jar > log-$(date +%s) 
+0

我在Windows命令提示符下運行它。 – Alexander 2013-02-16 03:19:57