`

软件包 java.io_Externalizable

 
阅读更多
package com.io;

import java.io.ByteArrayOutputStream;
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;
import java.io.Serializable;
  
public class ExternalizableDemo {   
    public static void main(String args[]) {   
        testObjectSeri();   
        testObjectInSeri();   
  
    }   
  
    /**  
     * 对象序列化测试  
     */   
    public static void testObjectSeri() {   
        Person person = new Person("test中文", "12", "abc");   
        FileOutputStream fos = null;   
        ObjectOutputStream oos = null;   
        try {   
            fos = new FileOutputStream("D:\\Temp\\person.dat");   
            oos = new ObjectOutputStream(fos);   
            oos.writeObject(person);   
        } catch (FileNotFoundException e) {   
            System.out.println("找不到指定的文件!");   
            e.printStackTrace();   
        } catch (IOException e) {   
            e.printStackTrace();   
        } finally {   
            try {   
                oos.flush();   
                oos.close();   
            } catch (IOException e) {   
                e.printStackTrace();   
            }   
        }   
    }   
  
    /**  
     * 对象反序列化测试  
     */   
    public static void testObjectInSeri() {   
        FileInputStream fis = null;   
        ObjectInputStream ois = null;   
        Person person = null;   
        try {   
            fis = new FileInputStream("D:\\Temp\\person.dat");   
            ois = new ObjectInputStream(fis);   
            person = (Person) ois.readObject();
            
        } catch (FileNotFoundException e) {   
            e.printStackTrace();   
        } catch (IOException e) {   
            e.printStackTrace();   
        } catch (ClassNotFoundException e) {   
            e.printStackTrace();   
        } finally {   
            try {   
                ois.close();   
            } catch (IOException e) {   
                e.printStackTrace();   
            }   
        }   
  
        System.out.println(person.toString());   
    }   
}   
  
/**  
* 测试序列化所用的类  
*/   
class Person implements Serializable {   
    /**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private String username;   
    private String cardNumber;   
    private transient String password;   
  
    public Person(String username, String cardNumber, String password) {   
        this.username = username;   
        this.cardNumber = cardNumber;   
        this.password = password;   
    }   
  
    public String getUsername() {   
        return username;   
    }   
  
    public void setUsername(String username) {   
        this.username = username;   
    }   
  
    public String getCardNumber() {   
        return cardNumber;   
    }   
  
    public void setCardNumber(String cardNumber) {   
        this.cardNumber = cardNumber;   
    }   
  
    public String getPassword() {   
        return password;   
    }   
  
    public void setPassword(String password) {   
        this.password = password;   
    }   
  
    public String toString() {   
        StringBuffer sb = new StringBuffer(this.getClass().getName());   
        sb.append("[");   
        sb.append("\n\t");   
        sb.append("username=" + this.username);   
        sb.append("\n\t");   
        sb.append("cardNumber=" + this.cardNumber);   
        sb.append("\n\t");   
        sb.append("password=" + this.password);   
        sb.append("]");   
        return sb.toString();   
    }
    
    
//    class Person implements Externalizable {   
//        /**
//    	 * 
//    	 */
//    	private static final long serialVersionUID = 1L;
//    	private String username;   
//        private String cardNumber;   
//        private  String password;   
//      
//        public Person(String username, String cardNumber, String password) {   
//            this.username = username;   
//            this.cardNumber = cardNumber;   
//            this.password = password;   
//        }   
//      
//        public String getUsername() {   
//            return username;   
//        }   
//      
//        public void setUsername(String username) {   
//            this.username = username;   
//        }   
//      
//        public String getCardNumber() {   
//            return cardNumber;   
//        }   
//      
//        public void setCardNumber(String cardNumber) {   
//            this.cardNumber = cardNumber;   
//        }   
//      
//        public String getPassword() {   
//            return password;   
//        }   
//      
//        public void setPassword(String password) {   
//            this.password = password;   
//        }   
//      
//        public String toString() {   
//            StringBuffer sb = new StringBuffer(this.getClass().getName());   
//            sb.append("[");   
//            sb.append("\n\t");   
//            sb.append("username=" + this.username);   
//            sb.append("\n\t");   
//            sb.append("cardNumber=" + this.cardNumber);   
//            sb.append("\n\t");   
//            sb.append("password=" + this.password);   
//            sb.append("]");   
//            return sb.toString();   
//        }
//
//		@Override
//		public void writeExternal(ObjectOutput out) throws IOException {
//		  
//		}
//
//		@Override
//		public void readExternal(ObjectInput in) throws IOException,
//				ClassNotFoundException {
//			
//		}
}  

 

分享到:
评论

相关推荐

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

    其中包括以下接口和类: java.io.Serializable java.io.Externalizable ObjectOutput ObjectInput ObjectOutputStream ObjectInputStream Java高级程序设计实战教程第五章-Java序列化机制全文共15页,当前为第7页。...

    JAVA序列化Serializable及Externalizable区别详解

    主要介绍了JAVA序列化Serializable及Externalizable区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    JDK_API_1_6

    Serializable 类通过实现 java.io.Serializable 接口以启用其序列化功能。 类摘要 BufferedInputStream BufferedInputStream 为另一个输入流添加一些功能,即缓冲输入以及支持 mark 和 reset 方法的能力。 ...

    LargeCollections

    虽然 LargeCollections 支持任何 Serializable/Externalizable/Writable/Kryo-Serializable Key 和 Value 类,但底层实现将所有内容存储为字节数组键值存储(类似于 HBase)。 因此,每个键/值实例都需要转换为

    j2ee中英文对照版api

    public void setCommandContext(String verb, DataHandler dh) throws java.io.IOException 用请求处理的动词和描述将要操作的数据的 DataHandler 来初始化 Command。注:调用者为 DataHandler 传递 null 值是可以...

    Java 串行化(序列化)Serializable/Externalizable

    NULL 博文链接:https://zhycaf.iteye.com/blog/982092

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

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

    深入探索Java对象的序列化

    Serializable有一个子接口Externalizable,实现Externalizable接口的类可以自行控制对象序列化荷反序列化过程。 一般来说,没有必要自己实现序列化接口,直接交给Java虚拟机是上策。 实现了序列化接口的类,如果...

    xml的序列化与验证

    1)Serializable和Externalizable接口Xstream框架2)Simple框架 3)Apache的AXIOM框架 2、XML验证文档的生成工具 trang.jar 3、利用XSD文件的XML3种验证方法 1)Dom4j的SAXValidator (dom4j.jar, javax.xml....

    java序列化和反序列化,面试必备

    最近阅读Serializable接口和Externalizable接口的源码,并结合了一些资料,对面试过程中与序列化相关的内容做了一些总结。 一、序列化、反序列化、使用场景、意义。 序列化:将对象写入IO流中; 反序列化:从IO流中...

    Java中的序列化与反序列化.pdf

    Serializable接口和Externalizable接口实现序列化和反序列化

    groovy-io:与JSON格式之间完美的Groovy序列化。 此外,还支持JSON的精美打印(与jsonEditorOnline样式匹配)

    Groovy-io 往返于JSON格式的完美序列化(可在)。 要包含在您的项目中: ... <artifactId>groovy-io <version>1.1.3 groovy-io由两个主要类组成,一个... groovy-io不需要类实现Serializable或Externalizable来进

    dom4J的使用方法ppt.

    dom4J的使用方法ppt.

    VALJOGen:VALue Java 对象生成器 (VALJOGen)

    VALJOGen 可用于从带注释的 Java 接口生成现代 Java 7/8+ 值类。 特征: 可以从您的接口使用自动实现的 getter 和 setter生成值对象。 支持自动实现工厂方法、构造函数、对象。 哈希码,对象。 等于,对象。 ...

    cocoaAMF使用指南.zip

    You can encode keyed and non-keyed, where the latter means you're encoding an externalizable class. While deserializing, if no class with the classname of the received object is found, CocoaAMF ...

Global site tag (gtag.js) - Google Analytics