gpt4 book ai didi

java - 将序列化对象写入垃圾文件?

转载 作者:行者123 更新时间:2023-12-01 17:06:31 25 4
gpt4 key购买 nike

try
{
File dataFile = new File("C:/Users/keatit/Desktop/players.txt");
if(!dataFile.exists())
{
dataFile.createNewFile();
}

FileOutputStream fos = new FileOutputStream("C:/Users/keatit/Desktop/players.txt");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(players);
oos.close();
}
catch(FileNotFoundException fnfex)
{
System.out.println(fnfex.getMessage());
}
catch(IOException ioex)
{
System.out.println(ioex.getMessage());
}

我有一个实现可序列化的类播放器,但是当我将对象写入文件时,文本会变得困惑,如下所示。任何帮助将非常感激。谢谢。

“Øí sr java.util.ArrayListxÒ™Ça I sizexp w srplayers.playerÌ`~%×êòœ IageL firstNamet Ljava/lang/String;xp t Trevorsq ~ t Michaelax”

最佳答案

这是二进制序列化。它并不意味着写入人类可读的文本文件。为此,您应该研究 JSON 或 YAML 等内容。我强烈建议反对使用ObjectOutputStream写入.txt文件 - 它会给人错误的印象。

二进制序列化的要点是稍后能够使用相同的序列化协议(protocol)对其进行反序列化 - 因此在本例中您将使用 ObjectInputStream。您应该发现它能够正确反序列化存储在文件中的对象。

(旁注:如果文件不存在,FileOutputStream 将自动创建一个新文件 - 您不需要自己这样做。此外,您应该使用 try-with-resources语句自动清理,而不是仅仅在 finally block 之外调用 close()。)

关于java - 将序列化对象写入垃圾文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25344052/

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