我有困难瓦特/写入和从文件读取对象数组。如何在java中存储和读取对象的数组列表?
这是我的目标看起来像:
package registar;
import java.io.Serializable;
public class Vozilo implements Serializable {
private static final long serialVersionUID = -5302010108271068350L;
private String registracija;
private String marka;
private String kategorija;
private int kubikaza;
public Vozilo(String registracija, String marka, String kategorija,
int kubikaza) {
super();
this.registracija = registracija;
this.marka = marka;
this.kategorija = kategorija;
this.kubikaza = kubikaza;
}
/* ALL GETTERS AND SETTERS ARE BELOW */
我使用的基本GUI元素得到输入并将其存储为对象到一个文件...
我用下面的代码写一个名为“TEST.DAT” W /可靠的标志文件:
final ObjectOutputStream fos = new ObjectOutputStream(new FileOutputStream("test.dat", true));
Vozilo novo = new Vozilo(txtRegistracija.getText(), txtMarka.getText(), cbKat.getSelectedItem().toString(), Integer.parseInt(txtKubikaza.getText()));
try {
fos.writeObject(novo);
fos.close();
JOptionPane.showMessageDialog(unos, "Car was added!");
} catch (IOException e) {
e.printStackTrace();
JOptionPane.showMessageDialog(unos, "Car was NOT added!");
}
以下代码从文件读取:
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("test.dat"));
ArrayList<Vozilo> list = new ArrayList<Vozilo>();
Vozilo vozilo = (Vozilo) ois.readObject();
list.add(vozilo);
ois.close();
for (Vozilo voz : list) {
System.out.println("Marka: " + voz.getMarka() + "\n");
}
问题是我无法从文件中读取所有对象,只显示第一个对象,并且它返回IndexOutOfBounds异常:\ 我在做什么错误?
P.S.如果解决方案是显而易见的,不要打扰,我已经睡了超过24小时:P
谢谢提前! Nikola
我会尝试尽快:) – Nikola 2010-08-08 07:47:11
好主意!有效!我只是喜欢你的建议:D我有几个小错误,现在都修好了。解决方案接受:)谢谢你,npinti! – Nikola 2010-08-08 09:00:08
欢迎:) – npinti 2010-08-08 09:15:20