📄 transientexam.java
字号:
import java.io.*;
import java.awt.geom.*;
public class transientExam {
public static void main(String[] args) {
LabeledPoint label = new LabeledPoint("少林寺", 10.213, 25.49);
try {
System.out.println("以下信息将被序列化并写入数据文件:");
System.out.println(label); //写入前
ObjectOutputStream out = new ObjectOutputStream(new
FileOutputStream("Label.dat"));
out.writeObject(label);
out.close();
ObjectInputStream in = new ObjectInputStream(new
FileInputStream("Label.dat"));
LabeledPoint label1 = (LabeledPoint) in.readObject();
in.close();
System.out.println("以下信息是从数据文件中恢复出来的:");
System.out.println(label1); //读出
}
catch (Exception e) {
e.printStackTrace();
}
}
}
class LabeledPoint implements Serializable {
private String label;
transient private Point2D.Double point; //transient变量
public LabeledPoint(String str, double x, double y) {
label = str;
point = new Point2D.Double(x, y);
}
private void writeObject(ObjectOutputStream out) throws IOException {
//调用defaultWriteObject()方法写入对象的描述以及那些可以被序列化的字段
out.defaultWriteObject();
out.writeDouble(point.getX());
out.writeDouble(point.getY());
}
private void readObject(ObjectInputStream in) throws IOException,
ClassNotFoundException {
//调用defaultReadObject()方法
in.defaultReadObject();
double x = in.readDouble();
double y = in.readDouble();
point = new Point2D.Double(x, y);
}
public String toString() {
return "label = " + label + ", Point ("
+ point.getX() + ", " + point.getY() + ")";
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -