gpt4 book ai didi

java - 保存到二进制/序列化 java

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

我必须,报价报价,

1.Save accounts to a binary (serialized) file. 2.Load (recreate) accounts from a binary (serialized) file.

所以首先,我正在查找具体是什么的示例,但我迷路了,在相同的场景中,人们提到 xml,在我的脑海中,我认为它的意思是 01010011000(二进制),当我查看其他代码时,它看起来就像普通的文本文件保存一样。

他到底是什么意思,有人可以发布示例,或者给我一个可以更好地阐明这一点的网站吗?一旦我看到我实际需要做什么,我就可以轻松地实现它,我只是对到底要保存什么(数据方面)以及如何保存感到困惑。

*我已经有了通过文本文件 (.txt) 保存的选项,如果我可以只使用该二进制部分的一些代码的话。

谢谢!

这是我现在拥有的,我认为它仍然无法正常工作。

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.logging.Level;
import java.util.logging.Logger;

public class SerializationMain implements Serializable {

public static void saveSerialized(Object YourObject, String filePath) throws IOException {
ObjectOutputStream outputStream = null;
try {
outputStream = new ObjectOutputStream(new FileOutputStream(filePath + ".dat"));
outputStream.writeObject(YourObject);
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
} finally {
try {
if (outputStream != null) {
outputStream.flush();
outputStream.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
}

public static Object loadSerialized(String filePath, Object[][] data1) throws IOException {
try {
FileInputStream fileIn = new FileInputStream(filePath);
ObjectInputStream in = new ObjectInputStream(fileIn);
try {
data1 = (Object[][]) in.readObject();
} catch (ClassNotFoundException ex) {
Logger.getLogger(SerializationMain.class.getName()).log(Level.SEVERE, null, ex);
}
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
System.out.println(data1.length);
return data1;
}
}

最佳答案

假设您有一个名为“account”的类,您只需要在类标题的顶部实现可序列化。

据我了解,这会将所有数据序列化为二进制形式。当然,您仍然需要使用 ObjectOutputStream/ObjectInputStream 执行将类对象实际写入/读出到文件的步骤。

例如……

public class account implements Serializable
{ ...
}

然后在您的主函数中,例如,您要保存对象的地方,您将创建一个文件,将其附加到 ObjectOutputStream 并以二进制形式写出您的对象。

关于java - 保存到二进制/序列化 java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9808539/

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