将控制台输出到文本文件?-JAVA

将控制台输出到文本文件?-JAVA,java,console,text-files,Java,Console,Text Files,根据我的代码: 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: $%.

根据我的代码:

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

1)您可以在运行程序时将stdout重定向到文件

java AccountTest >> test.txt 
    PrintStream out = new PrintStream(new FileOutputStream("test.txt", true));
    System.setOut(out);
2) 您可以在程序开始时重新分配stdout

java AccountTest >> test.txt 
    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) 运行程序时,可以将标准输出重定向到文件

java AccountTest >> test.txt 
    PrintStream out = new PrintStream(new FileOutputStream("test.txt", true));
    System.setOut(out);
2) 您可以在程序开始时重新分配stdout

java AccountTest >> test.txt 
    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() );

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

以下内容将附加到日志文件:

$ java -jar myjar.jar >> log
这将每次创建一个新的纪元日志文件(我不确定,
$(…)
可能是bash特有的功能):


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

以下内容将附加到日志文件:

$ java -jar myjar.jar >> log
这将每次创建一个新的纪元日志文件(我不确定,
$(…)
可能是bash特有的功能):


已经有答案了。若我并没有弄错,那个么将读取一个输入行,然后保存到文本文件。请注意,在我的代码中,我根本不打算在控制台上输入任何内容。@user2077545请查看该问题中排名最高的答案:是的,但这只是替换了我希望避免的文件内容。更不用说我所有的行都在文件中拼凑在一起了。已经有答案了。若我并没有弄错,那个么将读取一个输入行,然后保存到文本文件。请注意,在我的代码中,我根本不打算在控制台上输入任何内容。@user2077545请查看该问题中排名最高的答案:是的,但这只是替换了我希望避免的文件内容。更不用说我的所有行在文件中都被打断了;声明为thrown这将有帮助:main(String[]args)抛出ExceptionThat worked,但它仍在用每个新实例替换转储文件的内容。如何在代码中实现#1以便测试它。我不知道。不要更改代码中的任何内容,只需从命令行java AccountTest>>test.txt运行程序。该行给了我错误:未报告的异常IOExecption;声明为thrown这将有帮助:main(String[]args)抛出ExceptionThat worked,但它仍在用每个新实例替换转储文件的内容。如何在代码中实现#1以便测试它。我不知道。不要更改代码中的任何内容,只需从命令行java AccountTest>>test.txt运行您的程序。我在Windows命令提示符下运行它。我在Windows命令提示符下运行它。