1

ユーザー指定としてさまざまな種類の出力を提供する 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」を実行しようとしても機能しません。

出力をファイルにリダイレクトする方法を教えてください。

4

1 に答える 1

1

System.outPrintStreamです(これが、etcなどのメソッドを使用できる理由ですprintln())。

あなたができることは、ファイルにリダイレクトするオプションが表示された場合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 に答える