我正在寫ObjectOutputStream和ObjectInputStream的func來導入和導出聯繫人信息到文件中。java.io.StreamCorruptedException:無效的流頭:EFBBBFAC
我有一個異常java.io.StreamCorruptedException:無效的流頭:EFBBBFAC部分ObjectInputStream中,我不知道修復它。
如何解決它,謝謝。
LienHe lh = new LienHe(name, phone, img);
try {
ObjectOutputStream out = new ObjectOutputStream(
new FileOutputStream("src/Bai6/lienhe.txt", true));
out.writeObject(lh);
out.close();
} catch (FileNotFoundException ex) {
Logger.getLogger(FrmThemLienHe.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(FrmThemLienHe.class.getName()).log(Level.SEVERE, null, ex);
}
lst = new ArrayList<>();
try {// exception
ObjectInputStream in = new ObjectInputStream(
new FileInputStream("src/Bai6/lienhe.txt")));
while (in.available() > 0) {
LienHe lh = (LienHe) in.readObject();
lst.add(lh);
}
} catch (ClassNotFoundException | IOException ex) {
System.out.println(ex.getMessage());
}
也許不相關,但'in.available()'不會做你的想法。 – Henry
起初我使用while(true),但發生錯誤,我搜索互聯網,看到人們這樣做。 –
什麼是正確的,你所看到的人做什麼並不一定是同一件事。看到Javadoc。 'available()'不是流結束的有效測試。 – EJP