繁体   English   中英

用户输入后将输出重定向到文本文件

[英]redirect output to text file after user input

我创建了一个JNDI java程序,该程序提供不同种类的输出作为用户规范。 例如,用户可以使用以下不同参数运行程序:

java MyProg -o row -u username -l uId1,uId2,....

在此用户可以将选项指定为:-o:用于输出格式(行/列)-u:以其他用户身份连接到服务器(程序将要求输入密码)-l:程序将显示给定用户ID的输出)

现在,对于每个选项,我都定义了一个默认值(配置),因此如果用户要更改配置,则取决于用户,然后他将指定该选项。 因此,用户可以通过以下方式调用程序:

java MyProg
java Myprog -o col
java MyProg -u username 
java MyProg -l uId1,uId2,...
java MyProg -l uId1,uId2,... -o col

等等..

因此,每当用户使用-u(用于更改用户名)时,程序都会在询问密码后显示结果。

现在,我想提供一种工具,用户可以将控制台输出重定向到文本文件,但是当我尝试“ java MyProg> filename.txt”时,它不起作用。

请告诉我如何将输出重定向到文件。

System.out是一个PrintStream (这就是为什么您可以在其上使用诸如println()等方法的原因)。

您可以做的是,如果看到重定向到文件的选项,只需创建一个新的PrintStream到目标文件:

PrintStream stdout = System.out;

// outfile is a String
if (outfile != null)
    stdout = new PrintStream(outfile);

并使用stdout而不是System.out输出结果。

暂无
暂无

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

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