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

时间:2013-01-09 07:18:30

标签: java linux eclipse

我创建了一个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”时,它就无法正常工作。

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

1 个答案:

答案 0 :(得分:1)

System.outPrintStream(这就是为什么你可以在其上使用println()等方法。)

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

PrintStream stdout = System.out;

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

使用stdout代替System.out来输出结果。