如何将对象信息保存到文件中?
在Java中
ObjectOutputStream类的writeObjet(Object obj)方法可以往文件中写入对象的状态信息;
ObjectInputStream类的readObject()方法可以从文件中读出对象的状态信息;
writeObjet(Object obj)方法中的参数必须进行序列化,否则会出现NotSerializableException异常
问题来了,什么是序列化?
百度一手:序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。
这句话什么意思?用一个例子来说明
1.首先创建一个Worker类
public class Worker implements Serializable {
private String name;
private int age;
private double salary;
// 构造方法
public Worker(String name, int age, double salary) {
super();
this.name = name;
this.age = age;
this.salary = salary;
}
public Worker() {
super();
}
// get/set 方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
// toString 方法
@Override
public String toString() {
return name + "/" + age + "/" + salary;
}
}
2.新建一个测试类:
public class Test24 {
public static void main(String[] args) throws Exception {
Worker w1 = new Worker("Tom", 30, 5000.0);
File file = new File("test.txt");
test1(w1,file);
}
public static void test1(File file,Worker w1) throws Exception {
// 2.利 用 ObjectOutputStream 存 入 两 个 Worker 对 象 , 然 后 使 用
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(file));
out.writeObject(w1);
out.close();
// ObjectInputStream 读出这两个对象,并打印这两个对象的信息。
ObjectInputStream in = new ObjectInputStream(new FileInputStream(file));
System.out.println(in.readObject().toString());
in.close();
}
测试结果:
总结:
1.序列化对象要实现Serializable标识接口
2.序列化ObjectOutputStream和反序列化ObjectInputStream来进行读写操作
3.释放资源
如有问题,请联系我,联系方式我是不会告诉你滴!^ z ^