我正在制作一个地址簿,我的程序应该将列表中的每个元素保存到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
}
编辑:它只会将最后一个元素保存到文件中。它只显示文件中的一件事,无论我在列表中添加了多少东西。
答案 0 :(得分:0)
问题出在这里
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);