我创建了一个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”时,它就无法正常工作。
请告诉我如何将输出重定向到文件。
答案 0 :(得分:1)
System.out
是PrintStream(这就是为什么你可以在其上使用println()
等方法。)
您可以做的是,如果您看到重定向到文件的选项,只需为目标文件创建一个新的PrintStream
:
PrintStream stdout = System.out;
// outfile is a String
if (outfile != null)
stdout = new PrintStream(outfile);
使用stdout
代替System.out
来输出结果。