【发布时间】:2014-10-08 16:59:24
【问题描述】:
我在将对象保存到文本文件时遇到问题。
这是我的一段代码
if(action.equals("Save Person List"))
{
f1 = new File("PersonList.txt");
if(f1.exists())
{
f1.delete();
f1 = new File("PersonList.txt");
}
try {
fWriter = new FileWriter(f1, true);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
pWriter = new PrintWriter(fWriter, true);
for(Person p: pList)
{
pWriter.println(p.getFName());
pWriter.println(p.getLName());
pWriter.println(p.getPNo());
pWriter.println(p.getSalary());
}
JOptionPane.showMessageDialog(null, "Person List Stored in File 'PersonList.txt'");
}
在上面的代码中,单击按钮后,程序能够将对象的数组列表保存到文件中(我很高兴),但是假设我向数组列表中添加了更多对象,并且我想将它们保存到文件中,它会保存新数据,但在此过程中,它会复制文本文件中已保存的数据。
我希望程序能够覆盖文本文件中的数据并写入传入的新数据。我尝试删除文本文件(如果存在)但它不起作用。它显示在代码行中。有什么办法可以绕过这个障碍?
所有帮助将不胜感激!
【问题讨论】:
-
您可以添加检查是否存在同名文件而不是删除它并创建新文件并将数据存储在其中。通过这样做,您将始终拥有没有重复的新数据。
-
@Ronnie7777:这就是他已经在做的事情了。而且完全没用。阅读我的答案。
标签: java file awt actionlistener