私は、殺人の時間を判断するためのプログラムを作った。私が今持っているコードは、ターミナルに必要なものを正確に表示します。私はそれをファイルに印刷します。しかし、私はSystem.setOut()
をこの割り当てに使用するはずがありません。私はファイルにの代わりにを印刷することになっています。端末ではなくファイルに出力する
私は単純なString
をファイルに書き込む方法を知っていますが、ここで問題となっているのは、私の結果を端末に印刷する方法があります。これらのメソッドをファイルに印刷する方法代わりに。
これは私の2つの印刷方法と主な方法です。
印刷2Dアレイ法:
public static void printArray2d(String[][] array2d){
for(int i = 0; i < array2d.length; i++){
for(int j = 0; j < array2d[i].length; j++){
System.out.print(array2d[i][j]);
}
System.out.print("\n");
}
}
印刷完全なレポート方法:
public static void printReport(String[][] array2d, double arrayMin, double arrayMax){
System.out.println("Time since death probability distribution");
double hours = (arrayMax-arrayMin)/(array2d.length-1);
System.out.printf("Each line corresponds to approximately %.2f hours\n", hours);
System.out.printf("%.2f hours\n", arrayMin);
printArray2d(array2d);
System.out.printf("%.2f hours\n", arrayMax);
}
主な方法:
public static void main(String args[]) {
double[] array = cooldownSamples(27, 1000);
double[] counts = countsFromArray(array, 20);
String[][] array2d = array2dFromCounts(counts);
printReport(array2d, minFromArray(array), maxFromArray(array));
}
必要に応じてコード全体を投稿できます。
私は以前同様の質問があることを知っていますが、誰も私に必要なヘルプを与えてくれませんでした。私はまた、それらのスレッドで与えられた答えのいずれかにフォローアップの質問をするのに十分な評判を持っていないので、私は新しい質問を余儀なくされました。
ご協力いただきありがとうございます!
追加情報:
私は私がSystem.setOut()
を使用することになっていないよ言ったにもかかわらず、私は運がなくて、this threadに与えられた方法と回答を使用して試してみました。これを行う最も効率的な方法がSystem.setOut()
経由である場合は、代替方法を探しているにもかかわらず、これを実装して自分のコードで動作させる方法を理解できるようにしてください。
'your_process'がコンソールに出力した場合、' your_process> outfile'で簡単に出力することができます。 – Seelenvirtuose
私はそれを取得しません。 "System.setOut()"の問題は何ですか? "端末の代わりにファイルに出力するように頼みます。" 'システム。あなたがそれをファイルにリダイレクトした場合、これは正しいでしょう、それは端末をまったく通過しません。 – AxelH
上記の出力をリダイレクトすることができます。System.out + System.setOutを使用することもできますし、すべてのSystem.outステートメントを変更して別のライター/ PrintStreamを使用することもできます。 – matt