filename"时不打印到文件的 System.out.println-6ren"> filename"时不打印到文件的 System.out.println-我有一个特殊的问题。我有一个使用以下命令运行的 Java 程序: cat input_file_name | ./script_name > file_output_name script_name -6ren">
gpt4 book ai didi

java - 使用 "> filename"时不打印到文件的 System.out.println

转载 作者:搜寻专家 更新时间:2023-11-01 02:52:38 25 4
gpt4 key购买 nike

我有一个特殊的问题。我有一个使用以下命令运行的 Java 程序:

cat input_file_name | ./script_name > file_output_name

script_name 脚本只是做:java myprogram

我的问题是:如果不将其“放入 file_output_name 文件”,我如何在控制台中打印出某些内容(因为 > 文件 将所有 System.out.prints在该文件中)

我知道这是可能的,因为已经有一些来 self 从我的 Java 程序中使用的库中的某个类。但是我找不到这些打印品的确切来源,所以我不知道它是如何编码的。

感谢您的帮助。

最佳答案

简单的答案是将这些消息写入 System.err 而不是 System.out

这将起作用,因为 > 重定向标准输出而不是标准错误。 (您可以重定向标准错误,但 shell 语法不同;例如 foo 2>/tmp/somefile。)

一个更复杂的替代方法是更改​​您的程序,以便可以使用输出文件的名称作为参数来调用它。然后打开文件,将其包装在 PrintWriter 中并写入该流而不是 System.out。通过一些重构,您应该能够构建您的程序,以便它可以以任何一种方式使用。

关于java - 使用 "> filename"时不打印到文件的 System.out.println,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8461768/

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