Java I/O 学习笔记(9) 对象持久化
来源:互联网 发布:js删除对象中指定元素 编辑:程序博客网 时间:2024/05/30 22:41
package files;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;/** * 数据类实现Serializable接口 * * @author QuPeng * */class Data1 implements Serializable {private static final long serialVersionUID = 1L;private int i = 0;private transient int j = 0;public int getI() {return i;}public void setI(int i) {this.i = i;}public int getJ() {return j;}public void setJ(int j) {this.j = j;}}/** * 数据类实现Externalizable接口,必须声明无参构造函数,所有需要序列化的属性必需自己实现 * * @author QuPeng * */class Data2 implements Externalizable {public static int j = 0;private int i = 0;public Data2() {}public int getI() {return i;}public void setI(int i) {this.i = i;}@Overridepublic void writeExternal(ObjectOutput out) throws IOException {out.writeInt(j);out.writeInt(i);}@Overridepublic void readExternal(ObjectInput in) throws IOException,ClassNotFoundException {j = in.readInt();i = in.readInt();}}/** * 数据类实现Serializable接口,添加writeObject和readObject方法,用来持久化静态属性 * * @author QuPeng * */class Data3 implements Serializable {private static final long serialVersionUID = 1L;public static int j = 0;private int i = 0;public int getI() {return i;}public void setI(int i) {this.i = i;}private void writeObject(ObjectOutputStream stream) throws IOException {stream.defaultWriteObject();stream.writeInt(j);}private void readObject(ObjectInputStream stream) throws IOException,ClassNotFoundException {stream.defaultReadObject();j = stream.readInt();}}public class TestObjectStream {private static final long serialVersionUID = 1L;public static void main(String[] args) throws FileNotFoundException,IOException, ClassNotFoundException {testSerializableObject();testExternalizableObject();testSerializable2();}public static void testSerializableObject() throws FileNotFoundException,IOException, ClassNotFoundException {ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("output.txt"));Data1 d = new Data1();d.setI(99);oos.writeObject(d);oos.close();ObjectInputStream ois = new ObjectInputStream(new FileInputStream("output.txt"));Data1 dRestore = (Data1) ois.readObject();System.out.println(dRestore.getI());ois.close();}public static void testExternalizableObject() throws FileNotFoundException,IOException, ClassNotFoundException {ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("output.txt"));Data2 d = new Data2();d.setI(88);Data2.j = 99;oos.writeObject(d);oos.close();Data2.j = 77;ObjectInputStream ois = new ObjectInputStream(new FileInputStream("output.txt"));Data2 dRestore = (Data2) ois.readObject();System.out.println(Data2.j);System.out.println(dRestore.getI());ois.close();}public static void testSerializable2() throws FileNotFoundException,IOException, ClassNotFoundException {ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("output.txt"));Data3 d = new Data3();d.setI(88);Data3.j = 99;oos.writeObject(d);oos.close();Data3.j = 77;ObjectInputStream ois = new ObjectInputStream(new FileInputStream("output.txt"));Data3 dRestore = (Data3) ois.readObject();System.out.println(Data3.j);System.out.println(dRestore.getI());ois.close();}}
0 0
- Java I/O 学习笔记(9) 对象持久化
- Java I/O学习笔记
- Java I/O学习笔记
- 【Java学习笔记】I/O
- java I/O 学习笔记
- Java I/O 学习笔记(7) new I/O
- java学习笔记(9)-Java I/O系统
- JAVA I/O系统学习笔记-部分
- java中I/O流学习笔记
- java I/O流学习笔记
- 关于java I/O流学习笔记
- java I/O学习笔记3 ---NIO
- 【Java学习笔记】I/O实例
- java学习笔记-I/O篇(1)
- Hibernate学习笔记---1.java对象持久化技术
- 《Java面向对象编程》学习笔记16—Java I/O系统
- 《Java面向对象编程》学习笔记16—Java I/O系统
- 《Java面向对象编程》学习笔记16—Java I/O系统
- android ListView中EmptyView的使用
- upload large file use html and servlet
- CentOS7 web服务器添加目录以后出现 403error
- RC 4000 Multiprogramming System:一个你没听说过但是却非常重要的操作系统(下)
- HDU 1331 Function Run Fun (基础记忆化搜索)
- Java I/O 学习笔记(9) 对象持久化
- arp wpcap常用函数
- 【2】spring4.0.5初始化之listener
- UILineBreakModeWordWrap
- LeetCode | Unique Binary Search Trees
- TestJDBC
- Git的一些基本使用
- [寒江孤叶丶的Cocos2d-x之旅_31]lua的table深拷贝
- leecode 7 Reverse Integer