gpt4 book ai didi

Java 反序列化 - 文件已正确写入,但在具有相同文件路径的 ObjectInputStream 上调用 .available() 始终返回 0

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

首先,我是该网站的新手,发现它对于我以前的问题已经得到解答非常有帮助,但我找不到具体的任何内容,所以我希望这还没有已经得到答复。这是我正在制作的游戏,其中 RoadPanel.shopList 是一个静态数组列表,其中包含 map 中的所有商店(它们是从此处绘制和更新等)。 shopIn 与游戏运行时(正确)写入的文件具有相同的文件路径(我打开该文件以确保它被正确写入)。我不知道为什么它说没有可用的文件可以从InputStream中读取,所以我真的陷入困境......

public static void loadGame() throws ClassNotFoundException, IOException
{
ObjectInputStream shopIn = new ObjectInputStream(new FileInputStream("src/save/shops.ser"));
System.out.println("Available: " + shopIn.available());
while(shopIn.available() > 0)
{
System.out.println("hit");
Shop s = (Shop)shopIn.readObject();
RoadPanel.shopList.add(s);
}
}

感谢您的帮助,
皮特。

最佳答案

您的代码无效。 available() 不是流结束的测试。请参阅 Javadoc。某些流还没有实现它,包括 ObjectInputStream

您应该阅读直到抛出EOFException

关于Java 反序列化 - 文件已正确写入,但在具有相同文件路径的 ObjectInputStream 上调用 .available() 始终返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37402324/

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