我试图将带有文件列表的字符串保存到文件中,但它只保存最后一个..这里有什么问题? :(
public void fileprinter() throws IOException{
File dir = new File("c:");
String[] children = dir.list();
if (children == null) {
} else {
for (int i=0; i<children.length; i++) {
String filename = new StringBuffer().append(children[i]).toString();
System.out.println(filename);
Writer output;
File file = new File("D:/file.txt");
output = new BufferedWriter(new FileWriter(file));
output.write(filename);
output.close();
}
}
}
答案 0 :(得分:4)
你继续覆盖循环中的同一个文件,所以只有最后一行才能“存活”。
在循环外打开BufferedWriter(一次!),完成后关闭它。
另一种方法是在附加模式下打开,但即使这样,也不要一遍又一遍地重新打开同一个文件。