Externalizable接口的用法
来源:互联网 发布:mplayerx mac官网下载 编辑:程序博客网 时间:2024/04/27 16:16
Externalizable接口继承了Serializable接口,用来在序列化时手动的把需要的对象信息进行序列化。
Externalizable接口提供了两个方法:writeExternal(ObjectOuput out) 和 readExternal(ObjectInput in)
在你需要被序列化的类中实现这两个方法,这样在此类序列化时这两个方法将被自动执行,用以可定制地序列化此类。举例如下:
假如你需要序列化一个类Test:
import java.io.*;
class Test implements Externalizable{ //Test类必须实现Externalizable接口
private String letterstates = "fanruijun";
private int num = 0;
public Test(){
}
public void writeExternal(ObjectOutput out) throws IOException {
out.writeObject(letterstates);
out.write(88); //在序列化的数据最后加个88
}
public void readExternal(ObjectInput in) throws IOException,
ClassNotFoundException {
letterstates = (String)in.readObject();
num = in.read(); //把数字88加进来
}
public void putOut(){ //测试
System.out.println(letterstates +num);
}
}
序列化上面的Test类:AppTest
import java.io.*;
public class AppTest {
private void saveGame(){
Test m = new Test();
if (m != null){
try{
FileOutputStream ostream = new FileOutputStream("t.txt");
ObjectOutputStream p = new ObjectOutputStream(ostream);
p.writeObject(m); //writeExternal()自动执行
p.flush();
ostream.close();
} catch (IOException ioe) {
System.out.println ("Error saving file:");
System.out.println (ioe.getMessage());
}
}
}
private void loadGame(){
try{
FileInputStream instream = new FileInputStream("t.txt");
ObjectInputStream p = new ObjectInputStream(instream);
Test m = (Test)p.readObject();//readExternal()自动执行
m.putOut();
instream.close();
} catch (Exception e) {
System.out.println ("Error loading file:");
System.out.println (e.getMessage());
}
}
public static void main(String[] args){
new AppTest().saveGame();
new AppTest().loadGame();
}
}
运行结果:
D:/test/basic>javac AppTest.java
D:/test/basic>javac Test.java
D:/test/basic>java AppTest
- Externalizable接口的用法
- Externalizable接口的用法
- Externalizable 接口的使用。
- Externalizable的用法
- Java IO操作——对象序列化(Serializable接口、ObjectOutputStream、以及与Externalizable接口的用法和区别)
- 对象的序列化实现Serializable 接口和Externalizable接口
- Externalizable接口(1)
- Externalizable接口(2)
- Externalizable 接口例子
- Java中的Externalizable接口
- 自定义序列化实现Externalizable接口需要注意的问题
- 序列化接口:Serializable/Externalizable
- java Externalizable序列化接口
- 序列化的两种方法:Serializable 接口和 Externalizable接口
- Java中实现序列化的两种方式 Serializable 接口和 Externalizable接口
- Externalizable 的替代方法
- 序列化--Serializable接口和Externalizable接口
- Serializable接口与Externalizable接口区别
- 90句美丽的英文及翻译~~
- 并行编程
- XML文件操作指南
- 内存
- Javascript 倒计时!
- Externalizable接口的用法
- 反身代词,物主代词,双重所有格
- wtl 安装
- 在古代,汉字为什么未能实现拼音化?
- ubuntu 9.10 wine qq 2009 亲身体验,爽!
- 公告栏 极品js
- 视频: .NET Compact Framework 3.5版的新特性
- Flash与组件:国外收费组件网站
- 跨dll使用template/STL需要注意的问题