[英]Reading File from ArrayList
因此,我有一個試圖讀取文件以填充ArrayList的程序,但是在運行該程序時始終出現此錯誤:
java.io.StreamCorruptedException: invalid stream header: 69652E77
編碼:
File saveList = new File("PlayerDatabase.dat");
if(saveList.exists())
{
FileInputStream FileStream = new FileInputStream(saveList);
ObjectInputStream ObjStream = new ObjectInputStream(FileStream);
list = (List<Player>)ObjStream.readObject();
ObjStream.close();
}
當構造ObjectInputStream
,構造函數使用readStreamHeader()
從流中讀取前兩個字節,希望它們是對象流中應該存在的魔術值。
protected void readStreamHeader()
throws IOException, StreamCorruptedException
{
short s0 = bin.readShort();
short s1 = bin.readShort();
if (s0 != STREAM_MAGIC || s1 != STREAM_VERSION) {
throw new StreamCorruptedException(
String.format("invalid stream header: %04X%04X", s0, s1));
}
}
因此,如果找不到它們中的任何一個,則會拋出StreamCorruptedException
如從上面的源中顯而易見的那樣。 確保以正確的格式寫入文件。
似乎文件沒有以正確的格式序列化,因此在反序列化時拋出StreamCorruptedException。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.