您的位置:首页 > 移动开发 > Objective-C

用字节流将一个Object对象持久化

2015-06-17 10:59 471 查看
 用字节流将一个Object对象持久化

 注:

 1.读取的时候不能被new

 2.Object必需序列化

 3.static的不能被序列化
 4.transient也不能被序列化,但它还是存在栈中

 ObjectInputStream:

 可以为应用程序提供对对象图形的持久存储,用于恢复那些以前序列化的对象。

 bjectOutputStream:

 对以前使用 ObjectOutputStream 写入的基本数据和对象进行反序列化
 只能将支持 java.io.Serializable 接口的对象写入流中

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

public class FileDemo6 {

public static void main(String[] args) throws Exception {
// 将对象持久化
// writerObj();
// 读取持久化类
readObj();

}

public static void readObj() throws Exception {
// 指定要读取的对象
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(
"F:\\Objcet.object"));
// 将读取的对象转换成员工对象
FileDemo6_Emp emp = (FileDemo6_Emp) ois.readObject();

System.out.println(emp);
}

public static void writerObj() throws Exception {
// 创建一个写入流对象(后缀名自定义,反正直接打开了也是乱码)
ObjectOutputStream ois = new ObjectOutputStream(new FileOutputStream(
"F:\\Objcet.object"));
// 创建一个员工实体对象并写入指定文件中
ois.writeObject(new FileDemo6_Emp("zhangsan", 33));
// 关闭流
ois.close();

}

}要操作的对象
import java.io.Serializable;

public class FileDemo6_Emp implements Serializable {

private static final long serialVersionUID = 1L;

private String name;
private int age;

public FileDemo6_Emp(String name, int age) {
this.name = name;
this.age = age;
}

@Override
public String toString() {
return "FileDemo6_Emp [name=" + name + ", age=" + age + "]";
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  object 序列化 单例 java