问题描述
|
我有一个生成组合并打印到屏幕上的代码,我想将此打印到文件中,但是我不确定将PrintStream对象放在哪里可以访问我想打印的字符串。
public class Main {
public static void main(String args[]) {
brute(\"12345\",5,new StringBuffer());
}
static void brute(String input,int depth,StringBuffer output) {
if (depth == 0) {
System.out.println(output);
} else {
for (int i = 0; i < input.length(); i++) {
output.append(input.charat(i));
brute(input,depth - 1,output);
output.deleteCharat(output.length() - 1);
}
}
}
}
谢谢,
解决方法
只需将
PrintStream
添加为brute()
方法的参数之一,并将其传递给递归调用即可。然后在您的主体中,您只需要:
FileOutputStream fileOut = new FileOutputStream(\"output.txt\");
brute(\"12345\",5,new StringBuffer(),new PrintStream(fileOut));
,一种方法是让方法写入的是静态PrintWriter变量,而不是System.out。只需确保在调用递归方法后在main方法的finally块中关闭变量即可。