| |
11. 36. 4. 序列化对象 |
|
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
class Data implements Serializable {
private int value;
public Data(int init) {
value = init;
}
public boolean equals(Object obj) {
if (obj instanceof Data && ((Data) obj).value == value) {
return true;
}
return false;
}
public void setValue(int val) {
value = val;
}
public int getValue() {
return value;
}
}
public class MainClass {
public static void main(String[] args) {
Data data = new Data(1);
try {
ObjectOutputStream objectOut = new ObjectOutputStream(new BufferedOutputStream(
new FileOutputStream("C:/test.bin")));
objectOut.writeObject(data);
System.out.println("1st Object written has value: " + data.getValue());
data.setValue(2);
objectOut.writeObject(data);
System.out.println("2nd Object written has value: " + data.getValue());
data.setValue(3);
objectOut.writeObject(data);
System.out.println("3rd Object written has value: " + data.getValue());
objectOut.close();
} catch (IOException e) {
e.printStackTrace(System.err);
}
try {
ObjectInputStream objectIn = new ObjectInputStream(new BufferedInputStream(
new FileInputStream("C:/test.bin")));
Data data1 = (Data) objectIn.readObject();
Data data2 = (Data) objectIn.readObject();
Data data3 = (Data) objectIn.readObject();
System.out.println(data1.equals(data2));
System.out.println(data2.equals(data3));
System.out.println(data1.getValue());
System.out.println(data2.getValue());
System.out.println(data3.getValue());
objectIn.close();
} catch (Exception e) {
e.printStackTrace(System.err);
}
}
}
|
|
1st Object written has value: 1
2nd Object written has value: 2
3rd Object written has value: 3
true
true
1
1
1 |
|