Где поместить объект PrintStream для печати переменной Java - PullRequest
0 голосов
/ 15 апреля 2011

У меня есть код, который генерирует комбинации и распечатывает на экране, я хотел бы напечатать это в файл, но я не уверен, куда поместить мой объект 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); 
            }
        }   
    }
}

Спасибо,

Ответы [ 2 ]

2 голосов
/ 15 апреля 2011

Просто добавьте PrintStream в качестве одного из параметров для вашего brute() метода и передайте его для рекурсивного вызова.Тогда в вашей главной вам просто нужно:

FileOutputStream fileOut = new FileOutputStream("output.txt");
brute("12345", 5, new StringBuffer(), new PrintStream(fileOut));
1 голос
/ 15 апреля 2011

Один из способов - иметь переменную Static PrintWriter, в которую записывает ваш метод, а не System.out. Обязательно закройте переменную в блоке finally вашего основного метода после вызова рекурсивного метода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...