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生成aaaaaa,aaaaaac,aaaaaag,aaaaaat。然而,组合产生停止在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();
}
编辑:第一个代码就是问题。第二个代码是解决方案。
答案 0 :(得分:5)
看起来你没有冲洗FileWriter
。其余的字符串几乎肯定在内存中仍然没有写入磁盘。确保在完成后刷新并关闭FileWriter
。
事实上,只有调用close
方法才是必要的,因为它本身会调用flush
,但是由于你因为缺乏同花而被抓住了,所以认为重要的是要强调这里...