当前位置: 首页 > 知识库问答 >
问题:

更新Java中的序列化对象

郭修平
2023-03-14

是否有一种方法可以从数据库中读取序列化对象。ser文件并更新或删除已序列化的对象之一?

下面是我的代码,读取的对象类型'驱动程序':

public boolean checkPassword(String userName, String password, String depot) throws IOException {       
    FileInputStream fileIn = new FileInputStream("Drivers.ser");
    ObjectInputStream in = new ObjectInputStream(fileIn);
               
    try
    {           
        while (true) {              
            Driver d = (Driver) in.readObject();
            
            if (d.userName.equals(userName) && d.password.equals(password) && d.depot.equals(depot)) 
            {
                this.isManager = d.isManager;
                validAccount = true;
            }
        }
    }
    catch (Exception e) {}  
    
    return validAccount;
}

共有1个答案

高迪
2023-03-14

您需要从原始文件中读取所有对象,然后编写一个仅包含要保留或更新的对象的新文件。

Java的序列化对象流格式不是像ZIP、JAR、TAR等那样的归档文件格式。它只是序列化对象的序列。没有便于更新或删除对象的“索引”。

这就是为什么序列化对象不是实现数据持久性的好方法的原因之一。这就是数据库的设计目的。

 类似资料:
  • 问题内容: 我正在写一个基于套接字的程序。我正在使用ModelEvent类通过套接字传递信息。在ModelEvent中,有一个类型为(Object)的变量对象。 对象本身是带有某些值的2D数组。 假设数组对象填充了值1。第一个事件(事件)由客户端接收,并且数据正确。通过数据发送的第二个事件不正确。其数据与第一次调度中的数据相同。“ allo”和“ you”是要查看我是否两次都没有读取同一事件,而答

  • 本文向大家介绍java对象的序列化和反序列化,包括了java对象的序列化和反序列化的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了java对象的序列化和反序列化,供大家参考,具体内容如下 1. 什么是序列化        将对象转换为字节流保存起来,比如保存到文件里,并在以后还原这个对象,这种机制叫做对象序列化。(补充一句:把对象保存到永久存储设备上称为持久化) 2. 怎么实现序列化

  • 错误: java.lang.ClassNotFoundException:testprocedure.tp$3在java.net.URLClassLoader$1上运行(未知源)在java.net.URLClassLoader上运行(未知源)在java.security.accessController.doprivileged(本机方法)在java.net.URLClassLoader.find

  • 本文向大家介绍Java中对象序列化与反序列化详解,包括了Java中对象序列化与反序列化详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java中对象序列化与反序列化。分享给大家供大家参考。具体如下: 一、简介 对象序列化(Serializable)是指将对象转换为字节序列的过程,而反序列化则是根据字节序列恢复对象的过程。 序列化一般用于以下场景: 1.永久性保存对象,保存对象的字节序列

  • 问题内容: 我试图序列化一对映射并获得如下异常: 有某种方式可以将此序列化吗? 问题答案: 我从这里做了一些改进。在这里测试和工作SerializationUtils类

  • 以下代码导致此异常: 所以问题是:如何在GSON序列化和反序列化的泛型HashMap中获得正确的实例?