序列化Externalizable

原创 2016年06月01日 16:06:05
Person.java
package main;

import java.io.Externalizable;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.text.SimpleDateFormat;
import java.util.Date;

/**@author 		    ctl
 *  @date    		2016-6-1下午3:00:21
 *  @package_name main
 *  @project_name   Spring3.0企业应用开发实战
 *  @version 		version.1.0
 */
public class Person implements Externalizable{
	private String id;
	private String name;
	

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	//当序列化对象时,该方法自动调用   
    public void writeExternal(ObjectOutput out) throws IOException{   
        System.out.println("现在执行序列化方法");   
        //可以在序列化时写非自身的变量   
        Date date=new Date();   
        out.writeObject(date);   
        //只序列化userName,userPass变量   
        out.writeObject(name);   
        out.writeObject(id);   
    }   

    //当反序列化对象时,该方法自动调用   
    public void readExternal(ObjectInput in) throws IOException,ClassNotFoundException{   
        System.out.println("现在执行反序列化方法");   
        Date date=(Date)in.readObject();   
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        System.out.println("序列化时间:"+sdf.format(date));
        this.name="name:"+(String)in.readObject();   
        this.id="id:"+(String)in.readObject();   
    }

	public String toString() {
		return "Person [id=" + id + ", name=" + name + "]";
	}
}

	Person per=new Person();
		per.setId(UUID.randomUUID().toString());
		per.setName("ctl");
		File file=new File("D:\\person.obj");
		ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream(file));
		oos.writeObject(new Date());
		oos.writeObject(per);
		oos.close();
		
		ObjectInputStream ois=new ObjectInputStream(new FileInputStream(file));
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
		System.out.println(sdf.format(ois.readObject()));
		System.out.println(ois.readObject());
		ois.close();

JAVA 序列化 和 反序列化 (Externalizable Serializable) 那些事

序列化控制 当我们对序列化进行控制时,可能某个特定子对象不想让Java序列化机制自动保存与恢复。如果子对象表示的是我们不希望将其序列化的敏感信息(如密码),通常会面临这种情况。即使对象中的这...
  • bigtree_3721
  • bigtree_3721
  • 2016年01月13日 21:19
  • 756

Java序列化与外部化(Serializable/Externalizable)

序列化是什么:    序列化就是将一个对象的状态(各个属性量)保存起来,然后在适当的时候再获得。    序列化分为两大部分:序列化和反序列化。序列化是这个过程的第一部分,将数据分解成字节流,以便存...
  • aya19880214
  • aya19880214
  • 2014年12月16日 11:39
  • 587

Externalizable和Serializable

1、Serializable序列化时不会调用默认的构造器,而Externalizable序列化时会调用默认构造器的!!! 2、Serializable:一个对象想要被序列化,那么它的类就要实现 此接...
  • mengtuoling111
  • mengtuoling111
  • 2015年12月03日 09:36
  • 1994

Java之Serializable/Externalizable序列化和反序列化

Java之Serializable/Externalizable序列化和反序列化文章链接:知识点: 序列化和反序列化介绍; 为什么需要序列化和反序列化; Serializable接口序列化和反序列化;...
  • qq_16628781
  • qq_16628781
  • 2017年04月11日 11:31
  • 515

java.io 序列化 总结Serializable 和 Externalizable 的区别与联系,以及输出后的乱码问题

[java] view plain copy "WHITE-SPACE: pre"> 我们可以通过序列化来保存一个对象的状态(实例变量)到文件中,也可以从这个格式化的文件中很容易地读取对象的...
  • sdx1237
  • sdx1237
  • 2017年03月02日 22:41
  • 198

Serializable接口与Externalizable接口区别

被Serializable接口声明的类的对象的内容都将被序列化,如果现在用户希望自己指定序列化的内容,则可以让一个类实现Externalizable接口,此接口定义如下: public inte...
  • lessonnair
  • lessonnair
  • 2013年12月22日 10:42
  • 615

Java中的Externalizable接口

源码: package java.io; import java.io.ObjectOutput; import java.io.ObjectInput; public interface Ext...
  • hirohrj123
  • hirohrj123
  • 2013年09月25日 10:16
  • 1336

Java序列化之Externalizable

前篇介绍了标识了transient与static的变量是不被序列化的,以下介绍更为灵活控制对象序列化和反序列化的方法,甚至可以控制序列化非本类的数据。 一、接口介绍 当对象继承了java.io...
  • weiping_29
  • weiping_29
  • 2016年12月01日 15:30
  • 61

Java 序列化简单理解,serializable与externalizable区别?

什么是对象序列化? 把Java对象状态保存为一组字节(序列化),之后还可以把这些字节组装成对象(反序列化)。   为什么要使用对象序列化? 1. 使用RMI(远程方法调用) 2. 网络中传递对象(Ja...
  • love_world_
  • love_world_
  • 2013年12月24日 21:46
  • 1910

Java—序列化—Serializable—Externalizable

众所周知,java支持对对象的序列化操作。 为什么要序列化对象呢? 总结起来也就一句话,对一个对象的持久化。也就是说该对象可以以某种形式保存起来,以便我在需要的时候对其反序列化操作后可以还原回来。 ...
  • Ling912439122
  • Ling912439122
  • 2016年09月09日 16:00
  • 551
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:序列化Externalizable
举报原因:
原因补充:

(最多只允许输入30个字)