`
kankan1218
  • 浏览: 276695 次
  • 性别: 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序列化?学习.pdf

    1. 将需要被序列化的类实现 Serializable 接口,然后使用一个输出流(如:FileOutputStream)来构造一个 ObjectOutputStream 对象,接着,使用 ObjectOutputStream 对象的 writeObject(Object obj) 方法就可以将参数...

    通过实例深入了解java序列化

    Java 序列化是 Java 系列技术中一个较为重要的技术点,用于将 Java 对象序列化为二进制文件。开发人员只需要了解被序列化的类需要实现 Serializable 接口,使用 ObjectInputStream 和 ObjectOutputStream 进行对象的...

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

    ### Java序列化(Serializable)的作用与反序列化详解 #### 一、序列化的概念 序列化是指将程序中的对象转换为一系列字节流的过程,主要用于保存对象的状态或在网络之间传输对象。序列化的主要目的是为了能够持久化...

    java 序列化时排除指定属性

    Java序列化是Java平台提供的一种持久化机制,它允许我们将一个Java对象转换为字节流,以便存储到磁盘上,或者通过网络进行传输。这使得我们可以保存和恢复对象的状态。实现序列化的类需要实现`Serializable`接口,...

    java serializable 序列化与反序列化

    **一、Java序列化** 1. **什么是序列化**:序列化是将对象的状态(属性和成员变量)转换为可以存储或传输的数据格式的过程。在Java中,通常是将对象转换为字节数组,以便写入磁盘或通过网络发送。 2. **为什么需要...

    java序列化全解

    Java序列化是Java平台中的一种核心机制,它允许对象的状态被转换成字节流,以便存储到磁盘、数据库,或者在网络中进行传输。这对于实现持久化、远程方法调用(RMI)以及Enterprise JavaBeans(EJB)等高级功能至关...

    Java实现序列化例子

    Java序列化是Java平台提供的一种将对象转换为字节流,以便存储到磁盘、数据库或网络中的机制。它是Java语言内置的一种特性,主要用于持久化数据,也可以在进程间传递对象,或者在网络上传输对象。在Java中,如果一个...

    什么是java序列化,如何实现java序列化?.pdf

    Java 序列化是将一个对象的状态写入一个 Byte 流里,并且可以从其它地方把该 Byte 流里的数据读出来,重新构造一个相同的对象。这种机制允许你将对象通过网络进行传播,并可以随时把对象持久化到数据库、文件等系统...

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

    ### Java序列化(Serializable)的作用与反序列化详解 #### 一、序列化是什么? 序列化是指将程序中的对象转换为字节流的过程,从而方便存储或传输这些对象。通常,序列化用于将对象的状态(即其实例变量的值,而非...

    什么是java序列化,如何实现java序列化?借鉴.pdf

    Java 序列化是指将一个对象的状态写入一个 Byte 流里,并且可以从其它地方把该 Byte 流里的数据读出来,重新构造一个相同的对象。这种机制允许你将对象通过网络进行传播,并可以随时把对象持久化到数据库、文件等...

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

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

    Java对象序列化标准最新版

    ### Java对象序列化标准知识点详解 #### 一、系统架构概览 **1.1 概览** Java 对象序列化是一种将Java对象的...以上内容涵盖了Java序列化标准的关键知识点,深入了解这些概念有助于更好地理解和应用Java序列化技术。

    java序列化和反序列化

    Java序列化(Serialization)是一项重要的功能,它可以将对象的状态转化为一系列字节,从而实现对象的持久化存储或在网络上传输。序列化机制使得Java对象能够在不同的平台之间进行传输,并且能够保持其原始状态。 *...

    java自动序列化

    一、什么是Java序列化 Java序列化是将对象转换为字节流的过程,目的是为了保存对象的状态以便稍后恢复或传输到其他地方。通过实现`Serializable`接口,一个Java对象就可以被序列化。这个接口是一个标记接口,没有...

    java对象序列化.ppt

    `Serializable`接口是一个空接口,当一个类实现它时,表明该类的所有实例都可以被序列化。而`Externalizable`接口提供了更多的控制权,允许开发者自定义序列化和反序列化的过程。 实现`Serializable`接口的示例如下...

    几种序列化的实现方法 java自带, Writable, Avro

    与Java序列化相比,它更加轻量级且性能更好。每个可序列化的类型(如IntWritable, Text等)都实现了`write()`和`readFields()`方法,用于写入和读取数据到DataOutput和DataInput流。然而,Writable接口有一些局限性...

    Java对象序列化的秘密

    这是一个标记接口,没有定义任何方法,只是表明该类的实例可以被序列化。 2. **序列化过程**: 序列化时,JVM会按照类的层次结构自顶向下遍历,将类的字段(包括transient和static修饰的除外)及其值转换为字节流。`...

    java 对象序列化

    在Java中,如果一个类想要实现序列化,它必须实现`Serializable`接口。这个接口是一个标记接口,不包含任何方法,它的存在只是为了表明该类的对象是可以被序列化的。例如: ```java public class MyClass ...

    克隆和序列化(Java )

    例如,当需要复制一个复杂的对象树时,可以先序列化整个树,然后反序列化得到一个新的独立副本。这种方式可以实现深克隆,但效率相对较低,因为涉及到I/O操作。 `克隆和序列化.txt`文件可能包含了上述两种技术的...

    java序列化与反序列化

    Java序列化是将Java对象转换为字节流的过程,以便可以在磁盘、数据库或网络上存储或传输这些对象。这使得我们能够保存对象的状态,并在稍后的时间点恢复它,或者在网络之间传递对象。反序列化是相反的过程,即从字节...

Global site tag (gtag.js) - Google Analytics