我想在java中保存和读取对象。
private JButton save = new JButton("save");
save.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent arg0){
sauvegarder();}});
read();
现在这些是阅读和保存对象的方法......
保存:::: 的方法“sauvegarder” ArrayList<projet> file = new ArrayList<projet> ();
public void sauvegarder(){
projet pro = new projet (Integer.parseInt( a1.getText()),a2.getText(),a3.getText(),list1);
file.add(pro);
try {
FileOutputStream fileOut= new FileOutputStream("LES PROJETS.txt");
ObjectOutputStream out = new ObjectOutputStream(fileOut) ;
for (projet a:file)
out.writeObject(a);
out.close();
}
catch(Exception e)
{e.printStackTrace();}
JOptionPane.showMessageDialog(null,
" ^_^ FILE SAVED ^_^","save file",
JOptionPane.INFORMATION_MESSAGE);}
方法“阅读”阅读:::
ArrayList<projet> file1 = new ArrayList<projet> ();
JList l1 = new JList();
public void read(){
ObjectInputStream in = null;
try {
FileInputStream fileIn = new FileInputStream("LES PROJETS.txt");
in = new ObjectInputStream(fileIn) ;
while (true){
try{
projet c =( projet) in.readObject();
file1.add(c);}
catch(EOFException ex){// end of file case
break;}
}}
catch(Exception e)
{e.printStackTrace();}
finally{
try { in.close();
}
catch (IOException e) {
e.printStackTrace(); } }}
l1= new JList (file1.toArray());
}
现在阅读和保存工作正常,但问题是这两个arraylists是空的!!当我写file.size() - &gt; 0 !!虽然我是保存对象....文件“les projets .txt”包含我保存的对象,JList显示arraylist中的对象!!!
加上当我想保存更多对象(projet)时,我保存的第一个对象被删除,新对象被保存...... 有人可以帮我吗?!
答案 0 :(得分:0)
问题是您正在尝试使用此列表file
ArrayList<projet> file = new ArrayList<projet> ();
...
for (projet a:file)
out.writeObject(a);
这是空的,因为你从不向它添加任何东西。 数据的列表为file1
ArrayList<projet> file1 = new ArrayList<projet> ();
您需要撰写file1
而不是file