以下のコードはIOExceptionを返します。ここに私のメインです:Serializable ArrayList - IOExceptionエラー
public class Main
{
public static void main(String[] args) {
Book b1 = new Book(100, "The Big Book of Top Gear 2010", "Top Gear",
"BBC Books", 120, "Book about cars.");
Book b2 = new Book(200, "The Da Vinci Code", "Dan Brown", "Vatican", 450,
"A fast paced thriller with riddles.");
Book b3 = new Book(300, "Le Petit Nicolas", "Sempe Goscinny", "Folio", 156,
"The adventures of petit Nicolas.");
ArrayList<Book> biblia = new ArrayList<Book>();
biblia.add(b1);
biblia.add(b2);
biblia.add(b3);
File f = new File("objects");
try {
FileInputStream fis = new FileInputStream("objects");
int u = fis.read();
if (u != -1) {
ObjectInputStream ois = new ObjectInputStream(fis);
Bookstore b = (Bookstore) ois.readObject();
ois.close();
} else {
Bookstore b = new Bookstore(biblia);
FileOutputStream fos = new FileOutputStream("objects");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(b);
oos.close();
}
} catch (FileNotFoundException ex1) {
System.out.println("File not found.");
} catch (IOException ex2) {
System.out.println("IO Error.");
} catch (ClassNotFoundException ex3) {
System.out.println("Class not found.");
}
}
これは私がオブジェクトストリームにそれを使用するordedにブックオブジェクトのArrayListのを保存するためだけに使用書店クラスがあります。
public class Bookstore implements Serializable {
private ArrayList<Book> myBooks = new ArrayList<Book>();
public Bookstore(ArrayList<Book> biblia) {
myBooks = biblia;
}
}
すべての適切なライブラリもインポートしました。 私がしようとしていることは:ファイルが空でない場合、そこからArrayList(arraylistを含む書店オブジェクト)を読み込みます。それが空の場合は、新しいものを書いてください。 問題は、私が返す唯一のものは "IO Error"です。なぜ私は理解できません。
ファイルが存在するかどうかをテストする方法についてもっと知っておくべきです:)。あなたが今やっているやり方は実際には機能していません。キャッチ(IOException ex2)ブロックの内側に –
を追加し、 "ex2.printStackTrace();"を追加します。あなたの例外が発生している場所の詳細を取得します。 –
ありがとう。私は何も変えなかったが、今はうまくいくようだ。 :S – Felice