0
static void generator7(String fileName) throws IOException {

    FileWriter fw = new FileWriter(fileName);
    String[] list = { "a", "b", "c", "d" };

    for (int o = 0; o < list.length; o++) {
        for (int n = 0; n < list.length; n++) {
            for (int m = 0; m < list.length; m++) {
                for (int l = 0; l < list.length; l++) {
                    for (int k = 0; k < list.length; k++) {
                        for (int j = 0; j < list.length; j++) {
                            for (int i = 0; i < list.length; i++) {
                                fw.append(list[i] + list[j] + list[k]
                                        + list[l] + list[m] + list[n]
                                        + list[o]);
                                fw.append("\n");

                            }
                        }

                    }
                }
            }
        }
    }

}

アルファベット(a、b、c、d)のさまざまな組み合わせを生成するために使用するこのコードがあります。私はそれがtttttttにaaaaaaa、aaaaaac、aaaaaaag、aaaaaaatを生成することを期待しています。ただし、生成された組み合わせはtttttgtで停止します。例外はスローされません。コードのどの部分が間違っているのかわかりません。助けてください。

static void generator7(String fileName) throws IOException {

FileWriter fw = new FileWriter(fileName);
String[] list = { "a", "b", "c", "d" };

for (int o = 0; o < list.length; o++) {
    for (int n = 0; n < list.length; n++) {
        for (int m = 0; m < list.length; m++) {
            for (int l = 0; l < list.length; l++) {
                for (int k = 0; k < list.length; k++) {
                    for (int j = 0; j < list.length; j++) {
                        for (int i = 0; i < list.length; i++) {
                            fw.append(list[i] + list[j] + list[k]
                                    + list[l] + list[m] + list[n]
                                    + list[o]);
                            fw.append("\n");

                        }
                    }

                }
            }
        }
    }
}
fw.flush();
fw.close();

}

編集済み:最初のコードが問題です。2番目のコードが解決策です。

4

1 に答える 1

5

をフラッシュしていないようですFileWriter。残りの文字列はほぼ確実にまだメモリにあり、まだディスクに書き込まれていません。使い終わったら、必ずフラッシュして閉じてくださいFileWriter

実際、closeメソッドを呼び出すだけで、それ自体が呼び出されるため、厳密に必要flushですが、フラッシュが不足していることに気付いたため、ここで強調表示することが重要だと考えました...

于 2012-12-23T08:58:22.533 に答える