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.io.Serializable java.io.Externalizable ObjectOutput ObjectInput ObjectOutputStream ObjectInputStream Java高级程序设计实战教程第五章-Java序列化机制全文共15页,当前为第7页。...
主要介绍了JAVA序列化Serializable及Externalizable区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
Serializable 类通过实现 java.io.Serializable 接口以启用其序列化功能。 类摘要 BufferedInputStream BufferedInputStream 为另一个输入流添加一些功能,即缓冲输入以及支持 mark 和 reset 方法的能力。 ...
虽然 LargeCollections 支持任何 Serializable/Externalizable/Writable/Kryo-Serializable Key 和 Value 类,但底层实现将所有内容存储为字节数组键值存储(类似于 HBase)。 因此,每个键/值实例都需要转换为
public void setCommandContext(String verb, DataHandler dh) throws java.io.IOException 用请求处理的动词和描述将要操作的数据的 DataHandler 来初始化 Command。注:调用者为 DataHandler 传递 null 值是可以...
NULL 博文链接:https://zhycaf.iteye.com/blog/982092
Java中的序列化机制有两种实现方式: 一种是实现Serializable接口 另一种是实现Externalizable接口 区别: 实现Serializable接口 1 系统自动储存必要的信息 2 Java内建支持,易于实现,只需实现该接口即可,无须任何...
Serializable有一个子接口Externalizable,实现Externalizable接口的类可以自行控制对象序列化荷反序列化过程。 一般来说,没有必要自己实现序列化接口,直接交给Java虚拟机是上策。 实现了序列化接口的类,如果...
1)Serializable和Externalizable接口Xstream框架2)Simple框架 3)Apache的AXIOM框架 2、XML验证文档的生成工具 trang.jar 3、利用XSD文件的XML3种验证方法 1)Dom4j的SAXValidator (dom4j.jar, javax.xml....
最近阅读Serializable接口和Externalizable接口的源码,并结合了一些资料,对面试过程中与序列化相关的内容做了一些总结。 一、序列化、反序列化、使用场景、意义。 序列化:将对象写入IO流中; 反序列化:从IO流中...
Serializable接口和Externalizable接口实现序列化和反序列化
Groovy-io 往返于JSON格式的完美序列化(可在)。 要包含在您的项目中: ... <artifactId>groovy-io <version>1.1.3 groovy-io由两个主要类组成,一个... groovy-io不需要类实现Serializable或Externalizable来进
dom4J的使用方法ppt.
VALJOGen 可用于从带注释的 Java 接口生成现代 Java 7/8+ 值类。 特征: 可以从您的接口使用自动实现的 getter 和 setter生成值对象。 支持自动实现工厂方法、构造函数、对象。 哈希码,对象。 等于,对象。 ...
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 ...