gpt4 book ai didi

java - 从 ArrayList 读取文件

转载 作者:行者123 更新时间:2023-11-30 11:25:25 25 4
gpt4 key购买 nike

所以我有一个程序试图读入一个文件来填充一个 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,这从上面的源代码中可以看出。确保文件以正确的格式写入。

关于java - 从 ArrayList 读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20292806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com