`
peonyzzdx
  • 浏览: 590699 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

序列化(二)

阅读更多
1》序列化分为两大部分

       把Java对象转换为字节序列的过程称为对象的序列化。 
     把字节序列恢复为Java对象的过程称为对象的反序列化。

2》序列化的目的
  1、以某种存储形式使自定义对象持久化;
  2、将对象从一个地方传递到另一个地方。   
    3、使程序更具维护性

3》具体步骤:
序列化:通过ObjectOutputStream创建一个对象输出流,通过对象输出流的writeObject方法写入流对象.
反序列化 :创建一个对象输入流ObjectInputStream,通过对象输入流的readObject()方法读取对象。
代码示例如下:
/**
* 保存一个序列化的对象
*
*/
public void writeObject(String filename,Object o){
ObjectOutputStream writer = null;
try {
writer = new ObjectOutputStream(new FileOutputStream(filename));
writer.writeObject(o);
writer.flush();
writer.close();
} catch (FileNotFoundException e) { // 编译时异常
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

/**
* 读一个序列化的对象
*
*/
public Object readObject(String filename){
ObjectInputStream reader = null;
try {
reader = new ObjectInputStream(new FileInputStream(filename));
Object result = reader.readObject();
reader.close();
return result;
} 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 null;
}


4》序列化应用:
示例一:
示例二:person类
5》优缺点:
      优点:1.内建支持
  ·      2.易于实现
  · 缺点:1.需要implements Serializable接口
            2. 占用空间过大
  ·      3.由于额外的开销导致速度变比较慢
以上可以作为面试回答用;  
  • 大小: 253.3 KB
0
0
分享到:
评论

相关推荐

    二进制序列化和XML序列化

    在.NET框架中,有两种常见的序列化方式:二进制序列化和XML序列化。这两种方法各有优缺点,适用于不同的场景。 一、二进制序列化 二进制序列化是.NET框架提供的一种高效的数据序列化方式,它将对象转换为字节流,以...

    二进制BinaryFormatter进行序列化与反序列化

    ### 二进制序列化与反序列化 #### 一、概述 在.NET框架中,序列化是一项重要的功能,它允许开发人员将对象的状态转换成一种可以存储或传输的形式。通常,序列化有两种主要实现方式:**二进制序列化**(通过`...

    delphi 序列化

    序列化 (serialization):将对象的状态信息转换为可以存储或传输的形式的过程。 与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据。 序列化的目的  1、以某种存储形式使...

    C#序列化实例讲解,C#序列化实例源代码

    C#提供了多种序列化机制,如XML序列化、二进制序列化、JSON序列化等,每种都有其特定的应用场景。 二、XML序列化 XML序列化将对象转换为XML格式的字符串,易于阅读和交换。在C#中,可以使用`XmlSerializer`类实现...

    base64序列化字符串

    - **JSON数据**:序列化二进制数据,使其能在JSON格式中传输。 - **文件存储**:将文件内容编码为Base64字符串,存储在数据库或其他文本文件中。 ### 7. 文件名列表中的"DeserializeStr" 在给定的压缩包文件中,...

    C#自定义可序列化的Dictionary类型

    C#自定义可序列化的Dictionary类型 在C#中,Dictionary类型是非常常用的数据结构,但是.NET 2.0中的泛型Dictionary却不支持XML序列化。这是一种非常不便的限制,因为在实际应用中,我们经常需要将数据序列化到XML...

    C#通过Socket发送Object对象,序列化,反序列化

    这是一个用C#写的Socket服务器和客户端,当然Socket服务器和客户端不是主要的(有兴趣的朋友可以参考下),主要的内容是介绍如何通过这种Socket方式发送Object对象。 作者博客 http://luyugao.com

    C#和Java的序列化反序列化

    在C#中,我们可以使用.NET框架提供的`System.Runtime.Serialization.Formatters.Binary.BinaryFormatter`类来进行二进制序列化,或者使用`System.Xml.Serialization.XmlSerializer`来进行XML序列化。而在Java中,...

    C++ JSON 序列化与反序列化

    **二、JSON反序列化** 反序列化是将JSON字符串恢复为C++对象的过程。继续以nlohmann/json为例: 1. 从JSON字符串创建json对象: ```cpp std::string jsonString = R"({"name":"John","age":30})"; json j = json::...

    基于boost的序列化与反序列化

    Boost.Serialization提供了两种主要的序列化方式:文本序列化和二进制序列化。文本序列化通常更易于阅读和调试,但占用的存储空间较大;而二进制序列化则更为紧凑,节省空间,但可能难以直接查看。 1. **文本序列化...

    hessian学习基础篇——序列化和反序列化

    本文将深入探讨Hessian框架的基础知识,它是一个高效的二进制序列化协议,广泛应用于Java和.NET之间跨语言通信。通过学习Hessian,我们可以更有效地处理数据传输,提高应用性能。 首先,让我们理解什么是序列化。...

    C#中二进制数组转换,二进制序列化和json序列化方法

    本篇将深入探讨如何在C#中进行二进制数组与常规数组之间的转换,以及二进制序列化和JSON序列化的应用及其反序列化过程。 首先,让我们来看看二进制数组与常规数组之间的转换。在C#中,二进制数组通常用byte[]表示,...

    c# 二进制序列化 源码实例

    在C#编程中,二进制序列化是一个重要的概念,它允许我们将对象的状态转换为字节流,以便存储或在网络上传输。这个过程是通过.NET框架提供的System.Runtime.Serialization命名空间中的类来实现的。本实例将深入探讨...

    序列化和反序列化的封装类

    序列化是将一个对象的状态转换为可以存储或传输的形式,通常是XML、JSON或二进制格式。这样做的好处在于,我们可以保存对象的状态并在稍后恢复,或者将对象发送到远程服务器。在C#中,我们可以使用ISerializable接口...

    《C#序列化和反序列化之一-二进制序列化》源代码

    本资源聚焦于C#中的二进制序列化,这是一种效率高、数据紧凑的序列化方式。下面将详细阐述二进制序列化的概念、使用方法以及它在实际开发中的应用。 二进制序列化是.NET框架提供的一种机制,它可以将对象转换为原始...

    序列化和反序列化dll文件和proto

    序列化DLL文件通常涉及将内存中的函数、变量和类结构转换为二进制流或XML等文本格式,以便在磁盘上保存或通过网络发送。反序列化则是将这个流恢复为原来的函数和数据结构,使其能够在应用程序中正常工作。 接下来,...

    java序列化(Serializable)的作用和反序列化.doc

    #### 二、序列化的应用场景 序列化在多种场景下都非常有用: 1. **对象持久化**:当你希望将内存中的对象状态保存到文件或数据库中时,序列化是一种非常有效的方式。例如,在游戏开发中,可以通过序列化保存玩家的...

    protobuf序列化和反序列化技术

    相比于XML或JSON等文本格式,protobuf的序列化结果更小,解析速度更快,因为它是二进制编码。此外,protobuf提供了强大的类型定义,支持复杂的数据结构,包括消息嵌套、数组和枚举类型,使得数据结构更加清晰和易于...

    序列化和反序列化(文本加密成二进制文件)

    序列化是指将一个对象的状态转换为可存储或传输的形式,通常是二进制流;反序列化则相反,是将这个二进制流恢复为原来的对象。在本案例中,我们将关注如何将文本信息加密成二进制文件,以确保数据的安全性和不可读性...

    delphi序列化与反序列化

    在IT行业中,序列化和反序列化是两个关键的概念,特别是在对象持久化、数据传输以及存储方面。在Delphi编程环境中,这两个概念同样至关重要。本文将深入探讨Delphi中的序列化与反序列化,以及如何处理组件和结构体的...

Global site tag (gtag.js) - Google Analytics