zoukankan      html  css  js  c++  java
  • Externalizable的使用方法

    package com.itbuluoge.object;
    
    import java.io.Externalizable;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.ObjectInput;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutput;
    import java.io.ObjectOutputStream;
    
     class Moon implements Externalizable{
    
    	public Moon()
    	{
    		System.out.println("moon");
    	}
    	public void readExternal(ObjectInput arg0) throws IOException,
    			ClassNotFoundException {
    		// TODO Auto-generated method stub
    		System.out.println("reading moon!");
    	}
    
    	public void writeExternal(ObjectOutput arg0) throws IOException {
    		// TODO Auto-generated method stub
    		System.out.println("writing moon!");
    	}
    
    }
    class Sun implements Externalizable
    {
    	Sun()
    	{
    		System.out.println("sun");
    	}
    	public void readExternal(ObjectInput in) throws IOException,
    			ClassNotFoundException {
    		// TODO Auto-generated method stub
    		
    	}
    
    	public void writeExternal(ObjectOutput out) throws IOException {
    		// TODO Auto-generated method stub
    		
    	}
    	
    }
    
    public class Stars
    {
    	public static void main(String[] args) throws Exception, IOException
    	{
    		Moon moon=new Moon();
    		Sun sun=new Sun();
    		
    		ObjectOutputStream o=new ObjectOutputStream(new FileOutputStream("star.out"));
    		o.writeObject(moon);
    		o.writeObject(sun);
    		o.close();
    		
    		ObjectInputStream in=new ObjectInputStream(new FileInputStream("star.out"));
    		moon=(Moon)in.readObject();
    		sun=(Sun)in.readObject();
    		in.close();
    		
    	}
    }



    我们能够看到输出结果



    我们对moon的写和读序列化都没有问题,可是对sun的写没有问题,可是在读出的时候。抛出异常,由于实现了Externalizable接口的类,会调用构造函数,而sun的构造函数是私有的。无法訪问,从而导致抛出异常。

  • 相关阅读:
    maven基本配置
    spring mvc统一异常处理
    HBase介绍
    在 Windows 上安装 Hadoop 教程(转)
    Xshell利用登录脚本从服务器登录到另外一个服务器
    Windows平台下安装Eclipse插件,开发Hadoop应用
    如何编译Apache Hadoop2.2.0源代码
    oracle表空间表分区详解及oracle表分区查询使用方法(转+整理)
    javadoc相关问题
    Linux压缩与解压常用命令
  • 原文地址:https://www.cnblogs.com/claireyuancy/p/7354366.html
Copyright © 2011-2022 走看看