【发布时间】:2011-03-26 21:30:44
【问题描述】:
我在从文件中写入和读取对象数组时遇到困难。
这是我的对象的样子:
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”的文件,带有可靠标志:
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 异常:\ 我做错了什么?
附注如果解决方案很明显,请不要打扰,我已经超过 24 小时没有睡觉 :P
提前谢谢你!!! 尼古拉
【问题讨论】:
标签: java arraylist objectoutputstream objectinputstream