24-IO流-55-IO流(ObjectOutputStream-对象的序列化)
来源:互联网 发布:rekordbox软件的作用 编辑:程序博客网 时间:2024/06/03 13:20
package bean;import java.io.Serializable;public class Person implements Serializable{private String name;private int age;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 Person(String name, int age) {super();this.name = name;this.age = age;}public Person() {super();}}
======================分割线=================================
/* * 能操作对象的流: * ObjectInputStream和ObjectOutputStream * 被操作的对象需要实现Serializable(接口) * * 这两个流可以将内存中的对象写到硬盘上→持久化 * 这两个流也有序列化的概念,即第一个操作的对象,第二个…… */package demo;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectOutputStream;import bean.Person;public class ObjectOutputStreamDemo {public static void main(String[] args) throws IOException {writeObj();}public static void writeObj() throws IOException {ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("obj.Object"));/* * 对象从内存存储到硬盘上,需要存储到文件中,且这里是关联目的且操作文件,那么用FileOutputStream,它可以写文件但是不可以 * 写对象,所以外面再套个ObjectOutputStream。 * * 也可以想成,需要额外功能?需要写对象,那就ObjectOutputStream。 *//** * ObjectOutputStream写对象方法: * public final void writeObject(Object obj) throws IOException */oos.writeObject(new Person("小强",30));oos.close();}/* * writeObj()运行抛出异常: * Exception in thread "main" java.io.NotSerializableException: bean.Person * 说明:NotSerializableException是指某个要序列化的对象不能实现 java.io.Serializable 接口。 * 查找API发现Serializable接口是要求对象具备比较功能,要求用writeObject()方法写入的对象必须实现该接口,才能被序列化, * 相当于TreeSet集合必须将对象排序一样,所以Person类实现Serializable接口 *///在Person类实现Serializable接口后,运行程序,不再抛出异常}/* * 运行结果,在当前目录下新建obj.txt文本文件,其内容是一堆乱码,查找API,发现ObjectOutputStream类中:对象的默认 * 序列化机制写入的内容是:对象的类,类签名,以及非瞬态和非静态字段的值。 * 也就是说,那一堆乱码中包含对象的类名,类签名等信息。 * * 其实ObjectOutputStream类是将对象从内存写入硬盘中,不是让txt文件去解析,所以txt文件中出现乱码也无所谓。 * 目的就是将对象持久化,不需要解析。 * * 【所以,用ObjectOutputStream把对象存入硬盘中时,不要存在txt文件下,扩展名应该是Object】 *///41行代码是将对象序列化,被序列化的对象必须实现Serializable接口。
0 0
- 24-IO流-55-IO流(ObjectOutputStream-对象的序列化)
- 【IO流】ObjectOutputStream,ObjectInputStream 对象的读写
- IO流反序列化(objectInputStream)和序列化(ObjectOutputStream)连续存储对象StreamCorruptedException
- java语言编程IO流之对象序列化和ObjectInputStream与ObjectOutputStream
- 不常用的 IO 流对象:ObjectInputStream/ObjectOutputStream
- Java IO--对象序列化Serializable、ObjectOutputStream、ObjectInputStream、transient
- Java的IO操作(三) - 对象的序列化、ObjectInputStream和ObjectOutputStream类
- [Java 12 IO] Serializable 初步 ObjectOutputStream ObjectInputStream 将序列化的对象打出来
- Java IO之对象的序列化、ObjectInputStream和ObjectOutputStream类
- Java的IO流--ObjectInputStream和ObjectOutputStream
- IO流对象的序列化
- 52.IO流-对象的序列化
- IO流(对象的序列化)
- IO流--对象的序列化
- Java IO流->处理流->对象流:ObjectOutputStream&ObjectInputStream
- IO流之对象流ObjectOutputStream和ObjectInputStream
- IO流-ObjectOutputStream-将对象写入到文件中
- java基础之IO流--ObjectOutputStream(专门用于操作对象)
- 通知
- linux tar 各种参数详解, zip , rar
- BusyBox
- 系统方法调用总结
- 使用未公开关键字在 C# 中导入外部 printf 等参数数量可变函数 [1] CLR 支持
- 24-IO流-55-IO流(ObjectOutputStream-对象的序列化)
- Push和Modal的区别
- NVMe的目标:释放闪存潜能
- pageX,clientX,screenX,offsetX区别
- 白话设计模式之--策略模式
- 黑马程序员————集合类
- 定时器的使用
- java统计字符串中各个字符的出现次数
- hdoj-1242-Rescue【广搜+优先队列】