学习随笔(1)ObjectInputStream与ObjectOutputStream装饰器
来源:互联网 发布:虚拟机网络不可用 编辑:程序博客网 时间:2024/06/05 08:11
ObjectInputStream与ObjectOutputStream可以将内存中的对象整个存储下来,之后再读入还原为对象,在一定程度上解决了突然停电时的数据丢失的问题,通过将对象保存到磁盘中,使得对象的执行情况也被保存了下来,可以使程序的使用更加的便利。
ObjectInputStream提供了readObject()方法来读入对象,ObjectOutputStream提供了writeObject()方法来还原对象,输出到目的地。同时作为打包器ObjectInputStream与ObjectOutputStream需要配合FileInputStream和FileOutputStream一起使用,发挥作用。另外,被这俩个方法处理的对象必须操作java.io.Serializable接口,作为标识之用,表示这个对象是可以串行化的。(Serializable)
下面是实现的相关代码
(1)第一个类
import java.io.*;
public class Member2 implements Serializable { //定义了Member2类,用于存储会员的三个信息
/**
*
*/
// private static final long serialVersionUID = 1L;
private String name;
private String number;
private int age;
public Member2(String name,String number,int age){
this.name = name;
this.number = number;
this.age = age;
}
@Override
public String toString(){ //toString()函数的重载,输出格式化
return String.format("(%s , %s , %d )", name,number,age);
}
public void save() throws IOException{ //创建输出流,将文件写入程序中进行打包
try(ObjectOutputStream output = new ObjectOutputStream(new FileOutputStream(name))){
output.writeObject(this); //调用writeObject()方法
}
}
public static Member2 load(String name) throws IOException,ClassNotFoundException{ //创建输出流
Member2 member;
try(ObjectInputStream input = new ObjectInputStream(new FileInputStream(name))){
member = (Member2) input.readObject(); //调用readObject()方法
}
return member;
}
}
(2)第二个类,对于定义的方法的实现
import java.io.*;
import static java.lang.System.*;
public class Member2Demo {
public static void main(String[] args) throws Exception{
Member2[] member = { //创建Member2实例并且进行初始化
new Member2("yanpei","1234",22),
new Member2("yanjie","5657",33)
};
for(Member2 members:member){ //加强版for循环进行写入
members.save();
}
out.println(Member2.load("yanpei")); //输出
out.println(Member2.load("yanjie"));
}
}
初学者的学习笔记,部分参考林信良的《java学习笔记》,
- 学习随笔(1)ObjectInputStream与ObjectOutputStream装饰器
- ObjectInputStream 与 ObjectOutputStream
- ObjectInputStream 与 ObjectOutputStream
- ObjectInputStream与ObjectOutputStream类
- IO之装饰类ObjectInputStream 、ObjectOutputStream
- IO 输入与输出(7)-- ObjectInputStream和ObjectOutputStream类
- Java IO(十一):序列化与 ObjectInputStream、ObjectOutputStream
- ObjectInputStream ObjectOutputStream
- ObjectInputStream ObjectOutputStream
- ObjectOutputStream/ObjectInputStream
- ObjectInputStream & ObjectOutputStream
- ObjectOutputStream/ObjectInputStream
- 对象持久(利用ObjectOutputStream 与ObjectInputStream )
- 4.5.10.1ObjectInputStream与ObjectOutputStream类
- ObjectInputStream与ObjectOutputStream 报错 EOFException
- Java ObjectInputStream与ObjectOutputStream阻塞(block)问题
- ObjectInputStream与ObjectOutputStream的顺序问题
- ObjectInputStream与ObjectOutputStream的顺序问题
- FZU-1548 猪数
- 当当网畅销书排行爬虫(requests+BeautifulSoup)
- angular-ui-select 支持搜索的 下拉选择框 的使用
- Android中的内存泄漏情况分析
- 4.3注册一个工具窗口
- 学习随笔(1)ObjectInputStream与ObjectOutputStream装饰器
- 代码 抽出骨架:一个精简的Openblas api实现
- 混淆配置
- springmvc和mybatis整合xml
- Android A problem was found with the configuration of task ':app:packageRelease'
- 浅谈架构,架构的基础理解
- java web开发 高并发处理
- FFMPEG中的两输入Filter实现(二)
- user guide 说明