输出不打印到txt文件Java

时间:2015-08-14 02:22:36

标签: java permutation printwriter

我正在尝试创建一个程序,打印出所有可能的字母组合" AUGC"。 输出真的会打印到txt文件,结果将是一个txt文件,如下所示: " AAA AAG AAC AAU AGA" 等等 这是我到目前为止的代码:

import java.io.*;
import java.util.*;
import java.lang.*;

public class Permute {

    static String s = "ACGU";

    static void permute(int level, String prefix) {

        if (level == 0) {
            String fileName = "out.txt";
            PrintWriter outputStream = null;
            try {
                outputStream = new PrintWriter(fileName);
                outputStream.println(prefix);
                System.out.println(prefix);
                outputStream.close();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
            return;
        }
        for (int i = 0; i < s.length(); i++) {
            permute(level - 1, prefix + s.charAt(i));
        }
     }

    public static void main(String[] args) {
        int k = 2;
        permute(k, "");
    }   

}

目前程序正在将所有输出打印到控制台,并且只打印到txt文件的最后一个排列。 我希望它能将所有信息打印到两者。

非常感谢任何帮助

2 个答案:

答案 0 :(得分:2)

您过早关闭OutputStream。由于您正在使用递归,因此将OutputStream作为参数传递给main方法中的permute方法。初始化流并在main方法中关闭它。

答案 1 :(得分:0)

我可能在这个问题上错了,但你不需要包括一个&#34; \ n&#34;作为outputStream.println(前缀);

的一部分

所以看起来像 outputStream.println(前缀+&#34; \ n&#34;);

这会有所帮助,因为它似乎用最新的细节替换了这条线,而不是你想要寻找的新线。