📄 externalizabledemo.java
字号:
// 例5.5.8 ExternalizableDemo.java
import java.io.*;
class ExternalizableDemo implements Externalizable
{
// 声明两个变量
int i;
String s;
public ExternalizableDemo()//定义ExternalizableDemo类的无参构造函数
{
System.out.println("ExternalizableDemo's Constructor");
}
// 定义ExternalizableDemo类的带参构造函数,用来初始化
public ExternalizableDemo(String s, int i)
{
System.out.println("ExternalizableDemo(String s, int i)");
this.s = s;
this.i = i;
}
public String toString() { return s + i; }
// 在序列化时自动调用,可以用来指定序列化哪些内容
public void writeExternal(ObjectOutput out) throws IOException
{
System.out.println("ExternalizableDemo.writeExternal()");
out.writeObject(s); // 将字符串对象写入对象流
out.writeInt(i); // 将整型变量写入对象流
}
// 在反序列化时自动调用,可以用来指定反序列化哪些内容
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
{
System.out.println("ExternalizableDemo.readExternal()");
s = (String)in.readObject(); // 将字符串对象从对象流中恢复
i =in.readInt(); // 将整型变量从对象流中恢复
}
public static void main(String[] args)
{
System.out.println("Constructing objects:");
ExternalizableDemo ed = new ExternalizableDemo("String ", 50);
System.out.println(ed.toString());
try
{
ObjectOutputStream out = new ObjectOutputStream(
new FileOutputStream("data.ext"));
System.out.println("Saving object:");
out.writeObject(ed);
out.close();
ObjectInputStream in = new ObjectInputStream(
new FileInputStream("data.ext"));
System.out.println("Recovering from data.ext:");
ed = (ExternalizableDemo)in.readObject();
System.out.println(ed.toString());
} catch(Exception e) {
e.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -