序列化Serializable
创建一个类,实现Serializable接口(这是一个标志接口,给jvm识别的)
package com.io;
import java.io.Serializable;
public class Student implements Serializable {
private String name;
private String password;
public Student() {
}
public Student(String name, String password) {
this.name = name;
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", password='" + password + '\'' +
'}';
}
}
从内存写入到硬盘保存这个对象
package com.io;
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
/**
* 序列化,从内存写入到硬盘保存对象
* 反序列化,从硬盘读到内存组装对象
* FileOutputStream在工程项目下创建序列化文件students,这个文件保存了序列化后的对象,可以用反编译软件查看里面的内容
*/
public class ObjectOutputStreamTest01 {
public static void main(String[] args) throws Exception{
Student student = new Student("张三","123");
//序列化
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("students"));
//序列化对象
oos.writeObject(student);
//刷新
oos.flush();
//关闭
oos.close();
}
}
反序列化,读操作;从硬盘里读序列化对象的文件,这个文件叫students
package com.io;
import java.io.FileInputStream;
import java.io.ObjectInputStream;
/**
* 反序列化对象
* 1,参数:需要反序列化对象的那个文件
* 2,调用readObject() 方法;
*/
public class ObjectInputStreamTest01 {
public static void main(String[] args) throws Exception {
//反序列化
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("students"));
//读,开始序列化
Object object = ois.readObject();
//输出对象
System.out.println(object);
//关闭
ois.close();
}
}
最终,控制的输出的是一个对象