繁体   English   中英

显示Java程序的输出并将其从命令提示符复制到文件中

[英]Displaying and copying output of a java program from command prompt into a file

我有一个Java程序,该程序从“用户”获取输入并根据输入显示输出。 本程序向用户提供选项菜单,并且要求用户从菜单中选择一个选项。

现在,我必须通过批处理文件运行该程序,并将该程序的输出流式传输到另一个文件中。 我通过在bat文件中使用以下代码来实现此目的。

java -jar ./dist/MP4.jar > ./docs/mp4out.txt

但是,当运行该bat文件时,命令提示符将永远不会显示菜单并询问用户输入,因为所有Java程序输出都将重定向到该文件中。 所以我的问题是如何使命令提示符显示菜单并等待用户输入,并将所有程序输出重定向到文件中?

代替使用System.out.println()System.err.println()用于菜单输出。 那么您的重定向将仅捕获发送到System.out(STDOUT)的内容,而不希望转到System.err。

注意:上面是一些技巧,为什么不更改代码以将其写入输出文件而不需要重定向? 您可以将其设为可选,并在需要时写入stdout。

这与您想要的相反: 将Windows cmd stdout和stderr重定向到单个文件

如果我对您的理解正确,那么您所要做的就是允许用户在while循环中输入一些内容,例如

    while(userInput != optionThatEndsMenu) { askInput....}

然后,只需使用PrintWriter创建一个新文件,例如

    PrintWriter outputFile = new PrintWriter(<fileName>);
    outputFile.println(//whatever you have to output goes here);

并且应该将程序的内容打印到文件中。

Tee筛选器是传统的方法,可以同时重定向到文件和屏幕。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM