簡體   English   中英

從ArrayList讀取文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM