我正在制作一个地址簿,我的程序应该将列表中的每个元素保存到CSV文件。除了它只会在文件中保存1行之外,我已经使所有内容都工作了。
public static void save(){
PrintWriter writer = null;
try {
writer = new PrintWriter("C:\Users\Remixt\workspace\2\AddressBook.csv", "UTF-8");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.exit(0);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.exit(0);
}
{
writer.println(AddressBook.get(getListSize()-1)+"n");
writer.close();//saves file
}
编辑:它将只保存最后一个元素到文件。无论我向列表中添加多少次其他内容,它都只显示文件中的一个内容。
问题就在这里
writer.println(AddressBook.get(getListSize()-1)+"n");
将AddressBook
的最后一个元素写入csv
文件,使用for loop
下面是一个示例
for (int i = 0; i < AddressBook.size(); i++) {
writer.println(AddressBook.get(i)+"n");
}
最后,你应该写文件的append mode
filename=new FileWriter("printWriter.txt",true);
writer=new java.io.PrintWriter(filename);