`
kankan1218
  • 浏览: 271870 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

什么是java序列化,如何实现java序列化?(写一个实例)

阅读更多
序列化:
可以将一个对象保存到一个文件,所以可以通过流的方式在网络上传输,可以将文件的内容读取,转化为一个对象。

处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。
序列化的实现:
将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implements Serializable只是为了标注该对象是可被序列化的,然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流。

import java.io.*;
 
public class SerializationDemo{
public static void main(String args[]){
 
   //Object serialization
   try{
    MyClass object1=new MyClass("Hello",-7,2.7e10);
    System.out.println("object1:"+object1);
    FileOutputStream fos=new FileOutputStream("serial.txt");
    ObjectOutputStream oos=new ObjectOutputStream(fos);
    oos.writeObject(object1);
    oos.flush();
    oos.close();
    }
   catch(Exception e){
    System.out.println("Exception during serialization:"+e);
    System.exit(0);
    }
 
   //Object deserialization
   try{
    MyClass object2;
    FileInputStream fis=new FileInputStream("serial.txt");
    ObjectInputStream ois=new ObjectInputStream(fis);
    object2=(MyClass)ois.readObject();
    ois.close();
    System.out.println("object2:"+object2);
    }
   catch(Exception e){
    System.out.println("Exception during deserialization:"+e);
    System.exit(0);
    }
   }
}
 
 
@SuppressWarnings("serial")
class MyClass implements Serializable{
 
//private static final long serialVersionUID = 7279921812756335413L;
 
//private static final long serialVersionUID = 1L;
String s;
int i;
double d;
public MyClass(String s,int i,double d){
this.s=s;
this.i=i;
this.d=d;
}
public String toString(){
return "s="+s+";i="+i+";d="+d;
}
}

输出:
object1:s=Hello;i=-7;d=2.7E10
object2:s=Hello;i=-7;d=2.7E10
分享到:
评论

相关推荐

    Java 对象序列化详解以及实例实现和源码下载

    Java中的序列化机制有两种实现方式: 一种是实现Serializable接口 另一种是实现Externalizable接口 区别: 实现Serializable接口 1 系统自动储存必要的信息 2 Java内建支持,易于实现,只需实现该接口即可,无须任何...

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

    序列化是干什么的? 简单说就是为了保存在内存中的各种对象的状态(也就是实例...虽然你可以用你自己的各种各样的方法来保 存object states,但是Java给你提供一种应该比你自己好的保存对象状态的机制,那就是序列化。

    kryo实例,对java object的序列化和反序列化

    kryo中间件实例,内容:使用kryo使java对象object序列化成字符串,并使之反序列化为对象。 一个完整的工程,可使用eclipse导入,可运行DemoMain查看结果,有注释 资源包括依赖的kryo-2.24.0.jar、minlog-1.2.jar、...

    Java SE编程入门教程 java序列化(共14页).pptx

    Java SE编程入门教程 java序列化(共14页).pptx Java SE编程入门教程 java异常(共57页).pptx Java SE编程入门教程 java正则(共8页).pptx Java SE编程入门教程 properties(共3页).pptx Java SE编程入门教程 ...

    Java高级程序设计实战教程第五章-Java序列化机制.pptx

    Java高级程序设计 第5章 Java序列化机制 5.1 应用场景 5.2 相关知识5.3 实施过程 5.4 拓展知识5.5 拓展训练 5.6 课后小结5.7 课后习题 5.8 上机实训 Java高级程序设计实战教程第五章-Java序列化机制全文共15页,当前...

    Java序列化的机制和原理

    Serialization(序列化)是一种将对象以一连串的字节描述的...在这里你能学到如何序列化一个对象,什么时候需要序列化以及Java序列化的算法,我们用一个实例来示范序列化以后的字节是如何描述一个对象的信息的。……

    克隆和序列化(Java )

    克隆和序列化(Java )实例和源代码

    Java序列化多次追加到txt以及从txt反序列化

    java,使用序列化,多次将类的实例写入txt文件,以追加方式而非覆盖方式,同样反序列化从txt文件中读取出来,并显示在控制台上。

    java序列化&反序列化实例.rar

    包括两个工程代码:SerializationClient和SerializationServer,详细解述了序列化和反序列化过程,可直接部署到tomcat下运行,也可import到eclipse下编辑查看.非常好的例子!

    实例解析Json反序列化之ObjectMapper(自定义实现反序列化方法)

    主要介绍了实例解析Json反序列化之ObjectMapper,json自定义序列化的方法,需要的朋友可以了解下。

    java 简单 网络套接字 序列化&反序列化实用实例,可供初学习者学习

    java 简单 网络套接字 序列化&反序列化实用实例,可供初学习者学习

    Java序列化与反序列化三种格式存取

     Java中的序列化(serialization)机制能够将一个实例对象的状态信息写入到一个字节流中,使其可以通过socket进行传输、或者持久化存储到数据库或文件系统中;然后在需要的时候,可以根据字节流中的信息来重构一个...

    JAVA上百实例源码以及开源项目源代码

     Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...

    Java 序列化详解及简单实现实例

    主要介绍了 Java 序列化详解及简单实现实例的相关资料,使用序列化目的:以某种存储形式使自定义对象持久化,将对象从一个地方传递到另一个地方,需要的朋友可以参考下

    java源码包---java 源码 大量 实例

     Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...

    Java 序列化和反序列化实例详解

    主要介绍了Java 序列化和反序列化实例详解的相关资料,需要的朋友可以参考下

    java 序列化与反序列化的实例详解

    主要介绍了java 序列化与反序列化的实例详解的相关资料,需要的朋友可以参考下

    Java序列化与反序列化的实例分析讲解

    今天小编就为大家分享一篇关于Java序列化与反序列化的实例分析讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

    JAVA上百实例源码以及开源项目

     Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...

    C++序列化和反序列化

    大家也都知道他的高效,可是你一定也对他的使用方法,函数API接口感受到非常不适应,你一定非常怀念使用java和C#对一个实体类的那么轻松加简单的直接json序列化,本篇博客使用一个RapidJsonHelper类,将帮你实现对一...

Global site tag (gtag.js) - Google Analytics