当前位置: 首页 > 面试题库 >

保存到二进制/序列化Java

夏谦
2023-03-14
问题内容

我必须报价,

1.将帐户保存到二进制(序列化)文件中。2.从二进制(序列化)文件加载(重新创建)帐户。

因此,首先,我正在查找确切的例子,而我却迷失了自己,在同样的情况下,人们提到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”的类,您只需要在类标题的顶部 实现 Serializable。

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

例如

public class account implements Serializable
{ ...
}

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



 类似资料:
  • 我正在做一个项目,我希望用户能够将对象输入到ArrayList中,关闭程序,并能够再次打开程序,并且用户可以访问以前的ArrayList(从第一次运行开始)。 我目前将用户输入对象放入ArrayList中,该列表序列化ArrayList并将其保存为。bin文件。当我再次运行该程序时,上一个列表将被保存,但当我输入新值时,它将覆盖旧列表。我想我正在寻找一种方法来查看我的.bin文件是否存在,如果存在

  • 本文向大家介绍什么是C#中的二进制序列化和反序列化?如何在C#中实现二进制序列化?,包括了什么是C#中的二进制序列化和反序列化?如何在C#中实现二进制序列化?的使用技巧和注意事项,需要的朋友参考一下 将对象转换为非人类可读格式的二进制格式称为二进制序列化。 将二进制格式转换回人类可读格式称为反序列化? 为了在C#中实现二进制序列化,我们必须使用库System.Runtime.Serializati

  • 本文向大家介绍Java,C#使用二进制序列化、反序列化操作数据,包括了Java,C#使用二进制序列化、反序列化操作数据的使用技巧和注意事项,需要的朋友参考一下 java使用二进制序列化、反序列化的操作首先,要引入java.io下面相关包,或者直接写import java.io.*; 下面,为了书写操作的方便,采用复制文件,和throws声明异常的方式来写 初略代码,仅供参考! C#使用二进制序列化

  • 我想做一个java程序,用户输入一个十进制数,然后它转换成二进制。这是我到目前为止所拥有的,但是当我输入8时,虽然循环只循环一次,只给我0。我知道二进制中的8是1000,所以我不明白我做错了什么。我需要代码变得简单。请帮忙谢谢

  • 本文向大家介绍C#二进制序列化实例分析,包括了C#二进制序列化实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#二进制序列化的方法。分享给大家供大家参考。具体如下: 希望本文所述对大家的C#程序设计有所帮助。

  • 问题内容: 我有一些二进制数据,它们在Python中是字节字符串数组的形式。 是否有一种可移植的方式来序列化其他语言可以读取的数据? JSON丢失了,因为我刚刚发现它没有存储二进制数据的真正方法。其字符串应为Unicode。 我不想使用,因为我不想存在安全风险,因此将其限制在其他Python程序中使用。 有什么建议吗?我真的很想使用内置库(或至少是标准Anaconda发行版中的一个库)。 问题答案