`
luozhaoyu
  • 浏览: 346924 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

writeObject与readObject的使用例子

阅读更多
写了一段程序,这段程序是用来:
传入1个用户id以及数据data,
然后在网站的cache目录下生成${employee_id}.ser的文件,把data写进去。
如果该文件存在,则删掉再重新创建下。

    public static ArrayList<HashMap<String, String>> getQueryData(String employee_id) {
        String dataFile = webPath + "cache/" + employee_id + ".ser";
        System.out.println(dataFile);
        ArrayList<HashMap<String, String>> result = new ArrayList<HashMap<String,String>>();
        try {
            ObjectInputStream in = new ObjectInputStream(new FileInputStream(dataFile));
            result = (ArrayList<HashMap<String, String>>) in.readObject();
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return result;
    }
    
    public static void writeQueryData(String employee_id, ArrayList<HashMap<String, String>> data) {
        String dataFile = webPath + "cache/" + employee_id + ".ser";
        try {
            File f = new File(dataFile);
            System.out.println(f.getAbsolutePath());
            if (f.exists()) {
                f.delete();
                f.createNewFile();
            }
            System.out.println(f.getAbsolutePath());
            ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(f));
            out.writeObject(data);
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
分享到:
评论

相关推荐

    Java实现序列化例子

    在这种情况下,可以考虑使用`writeObject()`和`readObject()`方法来自定义序列化行为,或者使用`Externalizable`接口,它比`Serializable`提供了更多的控制。 6. **序列化框架**:除了Java内置的序列化机制,还有...

    序列化与反序列化经典例子

    这时可以实现`writeObject()`和`readObject()`方法来自定义序列化行为。 5. **序列化框架**:除了标准的Java序列化机制,还有许多高级的序列化库,如Jackson、Gson、protobuf等,它们提供了更灵活的配置和更好的...

    序列化与反序列化例子

    下面,我们来看一个简单的Java序列化与反序列化的例子: ```java import java.io.*; class User implements Serializable { private String name; private int age; public User(String name, int age) { ...

    serializeTest.rar

    在这个函数中,使用`ar.WriteObject(this)`来写入对象,`ar.ReadObject(&theClass)`来读取对象。这两个方法会自动处理对象的成员变量。 3. **文件操作**:通常,序列化过程会涉及打开和关闭文件。在MFC中,你可以...

    序列化、反序列化图文例子

    Person person = (Person) in.readObject(); in.close(); fileIn.close(); System.out.printf("Deserialized person..."); System.out.printf("Name: %s, Age: %d", person.name, person.age); } catch ...

    使用CArchive下载和存储对象.pdf

    CArchive类通常与CFile类结合使用,但在这个例子中,它与CMemFile类一起工作,使得对象能够存储在内存中,方便在网络传输或在内存中的操作。 **CMemFile类**是一个内存文件类,它提供了在内存中读写数据的功能。当...

    socket objectoutputstream 传对象 例子

    MyObject receivedObject = (MyObject) ois.readObject(); // 处理接收到的对象 System.out.println("Received object: " + receivedObject.getData()); ois.close(); clientSocket.close(); serverSocket....

    Runtime_实例变量遍历

    归档和反归档是数据持久化的重要手段,通过重写`writeObject()`和`readObject()`方法,我们可以定制对象的序列化和反序列化行为,以适应各种复杂的应用场景。这在处理包含敏感信息或有特殊存储需求的`Runtime`实例...

    自己写的一个序列化和反序列化的例子

    在编程领域,序列化和反序列化是两个关键的概念,主要用在数据持久化、网络传输和对象状态的保存与恢复等场景。本示例旨在教你如何在Java中实现自定义的序列化和反序列化过程。让我们深入探讨这两个概念。 **序列化...

    java 对象默认序列化的干预方法

    在这个例子中,`writeObject()`方法首先调用`defaultWriteObject()`来序列化非`transient`字段,然后使用`writeInt()`手动写入`age`字段。同样,`readObject()`方法首先调用`defaultReadObject()`来恢复非`transient...

    Java自带的序列化方法1

    此外,序列化可能会暴露出敏感信息,因此在处理包含敏感数据的对象时,应谨慎使用序列化,并考虑加密或其他安全措施。 总的来说,Java内置的序列化机制为开发者提供了方便的方式来保存和传输对象状态。`...

    java的深度克隆的例子

    深度克隆,也称为完全克隆,是指创建一个与原对象相同的新对象,不仅复制原对象的所有属性,还复制了原对象中引用的对象。这通常用于创建一个独立于原对象的新实例,即使原对象发生改变,新对象也不会受到影响。下面...

    object文件流

    在这个例子中,我们首先创建一个ObjectOutputStream实例,然后通过writeObject()方法将对象someObject序列化到"object.ser"文件。接着,我们创建一个ObjectInputStream实例,从同一文件中读取对象,通过readObject()...

    java源码:Java存储与读取对象.rar

    这时,可以使用`writeObject()`和`readObject()`方法来自定义序列化和反序列化的行为。 Java还提供了`Externalizable`接口,它比`Serializable`更灵活,允许程序员完全控制序列化和反序列化的细节。实现这个接口的...

    Java存储与读取对象.7z

    - **使用ObjectInputStream**:读取序列化的对象时,使用`ObjectInputStream`的`readObject()`方法,该方法返回一个Object,需要进行类型转换。 3. **序列化示例** ```java import java.io.*; class User ...

    使用SerializableDemo

    除了基本的序列化和反序列化,Java还提供了`writeObject()`和`readObject()`方法,允许自定义序列化和反序列化的行为。这些方法可以覆盖默认的序列化逻辑,以适应更复杂的需求。 此外,`serialVersionUID`是一个...

    java对象的串行化

    - **自定义序列化**: 通过实现`writeObject()`和`readObject()`方法,对象可以定义自己的序列化格式。 **二、实现串行化** 在Java中,实现串行化需要让类实现`Serializable`接口。这个接口没有定义任何方法,仅仅...

    保存一个list

    在这个例子中,`writeObject()`方法将整个列表及其包含的对象写入到名为"list.save"的文件中。 要读取这个列表,你可以使用`ObjectInputStream`: ```java try (FileInputStream fis = new FileInputStream("list....

    Java对象的序列化和反序列化实践

    2. **过程**:通过`ObjectInputStream`的`readObject()`方法,可以将字节流还原为与原始对象等效的新对象。 3. **安全问题**:反序列化过程中可能存在安全风险,如代码注入。因此,应谨慎处理反序列化数据,确保来源...

Global site tag (gtag.js) - Google Analytics