gpt4 book ai didi

java - 将Java程序的 "System.out.print"输出重定向到txt文件

转载 作者:行者123 更新时间:2023-12-02 11:09:16 27 4
gpt4 key购买 nike

程序内重定向打印输出的代码:

   try
{
System.out.println("Print on console");

// Store console print stream.
PrintStream ps_console = System.out;

File file = new File("C:/Users/John/Desktop/compiletest/output" + trialNum + ".txt");
FileOutputStream fos = new FileOutputStream(file);
PrintStream ps = new PrintStream(fos);
System.setOut(ps);
System.out.println("Print in the file !!");

// Set console print stream.
//System.setOut(ps_console);
System.out.println("Console again !!");
}
catch(Exception e)
{
System.out.println("Mission failed, we'll get em next time");
}

如果在我想要重定向其输出的程序中实现此方法,则效果很好。就我而言,我想要一个单独的类,它将某个程序的输出重定向到 txt 文件。

如果有更简单的方法来完成这项任务,我非常愿意听到。

最佳答案

这似乎是日志框架的完美使用示例。

还有许多其他库可以使用。一般来说,最好对文件使用单独的流 - 如果您必须重定向System.out,则保留原始的PrintStream可能会很有用> 在更改它之前,以便您仍然可以在需要时写入控制台:

PrintStream ORIGINAL_SOUT = System.out;
System.setOut(ps);

System.out.println("ABC"); // Uses file
ORIGINAL_SOUT.println("ABC"); // Uses console

日志框架的简单使用示例(来自第一个链接库):

private static final Logger logger = LoggerFactory.getLogger(YourClass.class);

logger.debug("A message at DEBUG level");
logger.info("A message at INFO level");
logger.warn("A message at WARN level");
logger.error("A message at ERROR level");

关于java - 将Java程序的 "System.out.print"输出重定向到txt文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50714958/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com