我有困難瓦特/寫入和從文件讀取對象數組。如何在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