简单来说就是需要将对象持久化到存储设备中保存对象状态以便后续对它进行检索。
要仔细看就去搜索序列化和反序列化
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
class objectCustomer implements Serializable{//该类必须实现Serializable接口,否则不能进行序列
//化和反序列化,另外该接口没有方法只是用来标志用的
private static final long serialVersionUID = 1L;//这是必须要声名的,它的作用就像当文件被
//序列化后必须用相同的UID值进行反序列化,否则会出错
int a=0;
String b ="";
public objectCustomer(int a,String b) {
this.a=a;
this.b=b;
}
}
public class Easy {
public static void main(String[] args) throws ClassNotFoundException {
Path path1 = Paths.get("D:\\music\\emq\\emm.txt");//使用get方法创建Path的快捷方式
//序列化
objectCustomer Object = new objectCustomer(1,"Hello");
try(java.io.OutputStream outputstream =
Files.newOutputStream(
path1, StandardOpenOption.CREATE);//配置输入流 设置文件路径 打开方式
ObjectOutputStream oos =new
ObjectOutputStream(outputstream)//文件序列化存放的文本
)
{
oos.writeObject(Object);//存储对象
oos.writeObject("bingo");
oos.writeObject("3go");
}catch(IOException e){
e.printStackTrace();
}
//反序列化
try(java.io.InputStream inputstream =
Files.newInputStream(
path1,StandardOpenOption.READ );//配置输出流 文件路径 打开方式
ObjectInputStream ois = new
ObjectInputStream(inputstream)//将序列化的文件反序列化
)
{
objectCustomer object2 = (objectCustomer) ois.readObject();//将反序列化对象的
//属性(字段)赋给新的对象
System.out.println(object2.a);//打印新的对象的字段a
System.out.println(object2.b);
String str = (String) ois.readObject();//获取关于String对象的对象
String str2 = (String) ois.readObject();//获取第二个String的对象
System.out.println(str);//bingo
System.out.println(str2);//3go 这表示获取相同对象的顺序依然是先进先出
}catch(IOException e) {
e.printStackTrace();
}
}
}