1

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

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

这里用户可以指定选项: -o:输出格式(行基础/列基础) -u:连接到不同用户的服务器(然后程序将要求输入密码) -l:程序将显示给定用户 ID 的输出(s )

现在问题是我为每个选项定义了一个默认值(配置),因此如果他想更改配置,则由用户决定,然后他将指定该选项。因此用户可以将程序称为:

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”时它不起作用。

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

4

1 回答 1

1

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

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

PrintStream stdout = System.out;

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

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

于 2013-01-09T07:33:05.143 回答