Java学习笔记——序列化和反序列化
2024-10-21 06:28:17
寒雨连江夜入吴,平明送客楚山孤。
洛阳亲友如相问,一片冰心在玉壶。
——芙蓉楼送辛渐
持久化数据的第一种方式。在序列化之前也可以把数据打散逐行存储在文件中,然后在逐行读取。
比如定Student类
用字符输出流把Student类的所有属性存入本地文件:
张三|18|男
李四|18|女
读取一行,用|分隔的数据分别为学生的name,age,gender,创建学生对象并加入学生集合
循环上一步直到br.readLine = null
至于这种方法怎么存储对象的其他信息那就不清楚了。
下面来看序列化
上代码:
public class SerializableDemo { public static void main(String[] args) throws IOException, ClassNotFoundException {
//序列化对象obj,将obj存入本地文件obj.bin.对象obj的类必须Serializable接口
OutputStream os = new FileOutputStream("/home/yanshaochen/public/obj.bin");//OutputStream抽象类
ObjectOutputStream oos = new ObjectOutputStream(os);//ObjectOutputStream实例类
oos.writeObject(obj);//持久化obj
oos.close();
//反序列化
InputStream is = new FileInputStream("/home/yanshaochen/public/obj.bin");
ObjectInputStream ois = new ObjectInputStream(is);
@SuppressWarnings("unchecked")
Object obj =(Object)ois.readObject();//强制转换可能出现ClassNotFoundException异常
}
}
最新文章
- Hibernate注解配置
- Qt写Activex插件 总结
- HTML中网页超链接设计
- mxnet的python包导入的前前后后
- 如何自定义Grunt任务
- lucene 建立索引的过程
- AS-demo09
- Linux/Unix shell 脚本监控磁盘可用空间
- unity, audio falloff
- TCL语言笔记:TCL中的列表操作
- tomcat启动中提示 - consider increasing the maximum size of the cache
- WPF简单拖拽功能实现
- java的IO流包装不当导致从网页获取的数据出现乱码
- Swift - 自定义函数规则说明
- iOS NSMutableArray添加NSInteger元素
- JDK自带的日志Logging
- JavaScript禁止浏览器默认行为
- [转]golang中defer的使用规则
- BZOJ4911: [Sdoi2017]切树游戏
- python 之 文件I/0