我制定了确定谋杀时间的程序。我现在所拥有的代码完全打印出它应该给终端的内容。我希望它打印到一个文件。但是,我不应该为此作业使用System.setOut()
。我应该打印到文件而不是到终端。打印到文件而不是终端
我知道如何将一个简单的String
写入文件,这里的问题是我已经有方法将结果打印到终端,我不知道如何将这些方法“转换”为打印到文件中代替。
这是我的两个印刷方法和主要方法:
打印二维数组方法:
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
我不明白。由于要求“_to打印到文件而不是打印到终端_”,因此'System.setOut()'有什么问题? '系统。out'只是一个流,最初连接到终端,如果你将它重定向到一个文件,这将是正确的,它不会通过终端。 – AxelH
您可以重定向输出(上面建议),您可以使用System.out + System.setOut,或者您可以更改所有System.out语句以使用不同的Writer/PrintStream。 – matt