0

鉴于我的代码:

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”转储到文件中(转储为不擦除文件内容)?或者可能为每个实例创建单独的文件。初学者在这里感谢任何帮助。谢谢。

4

2 回答 2

2

1)您可以在运行程序时将标准输出重定向到文件

java AccountTest >> test.txt 

2)您可以在程序开始时重新分配标准输出

    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() );
于 2013-02-16T03:07:20.740 回答
1

这取决于你如何运行这个程序。如果你手头有一个 POSIX shell,你可以将它的标准输出重定向到一个文件。

以下将附加到日志文件:

$ java -jar myjar.jar >> log

这个每次都会创建一个新的以纪元为日期的日志文件(这$(…)可能是一个特定于 bash 的功能,我不确定):

$ java -jar myjar.jar > log-$(date +%s)
于 2013-02-16T03:10:00.737 回答