开发者

PrintWriter with a for loop

I have a loop enumeration all possible combinations of a sequence. I'm using a for loop and I get proper results in the console but but my outputted text file is inconsistent.

    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();

            }
        }
    }

I'm not sure what's going wrong.


Each time you create a new PrintWriter, it starts writing to the file from beginning. Try writing to your file after you have constructed 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);    
                }

            }
        }
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜