我有一个循环枚举序列的所有可能组合。我正在使用for循环,我在控制台中得到了正确的结果但是我输出的文本文件不一致。
import java.io.*;
import java.io.PrintWriter;
public class WriteFile {
public static void main (String args[]) throws FileNotFoundException {
brute("12345", 5, new StringBuffer());
}
static void brute(String input, int depth, StringBuffer output) throws FileNotFoundException {
PrintWriter pw =
new PrintWriter("/Users/evanlivingston/test.txt");
if (depth == 0) {
System.out.println(output);
} else {
for (int i = 0; i < input.length(); i++) {
pw.println(output);
output.append(input.charAt(i));
brute(input, depth - 1, output);
output.deleteCharAt(output.length() - 1);
}
pw.flush();
pw.close();
}
}
}
我不确定出了什么问题。
答案 0 :(得分:1)
每次创建新的PrintWriter时,它都会从头开始写入文件。在构建output
static void brute(String input, int depth, StringBuffer output) throws FileNotFoundException {
if (depth == 0) {
System.out.println(output);
PrintWriter pw =
new PrintWriter("/Users/evanlivingston/test.txt");
pw.println(output);
pw.flush();
pw.close();
} else {
for (int i = 0; i < input.length(); i++) {
output.append(input.charAt(i));
brute(input, depth - 1, output);
output.deleteCharAt(output.length() - 1);
}
}
}