ファイルからオブジェクトの配列を読み書きするのに問題があります。
これは私のオブジェクトがどのように見えるかです:
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例外を返すことです:\何が間違っているのですか?
PS解決策が明らかな場合は、気にしないでください、私は24時間以上寝ていません:P
前もって感謝します!!!ニコラ