在哪里放置PrintStream对象以打印变量java

问题描述

| 我有一个生成组合并打印到屏幕上的代码,我想将此打印到文件中,但是我不确定将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块中关闭变量即可。