带有for循环的PrintWriter

时间:2011-04-16 02:38:31

标签: java loops printwriter

我有一个循环枚举序列的所有可能组合。我正在使用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();

            }
        }
    }

我不确定出了什么问题。

1 个答案:

答案 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);    
                }

            }
        }