24-IO流-56-IO流(ObjectInputStream-对象的反序列化)
2015-08-11 16:29
465 查看
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(); } }
==============================分割线======================================
/* * 对于上一个视频产生的obj.Object文件,一般读取流只能读取信息,但是无法组合成对象,若需要重新读取出对象,那么就要用到 * 【反序列化】——ObjectInputStream类。 * * 打开API,找到java.io包中的ObjectInputStream类,其内说明是: * ObjectInputStream 对以前使用 ObjectOutputStream 写入的基本数据和对象进行反序列化。 * 即ObjectInputStream只能读取由ObjectOutputStream写入的对象,且按照顺序读取,即第一次readObject(),读取第一个对象, * 第二次readObject(),读取第二个对象…… */ package demo; import java.io.FileInputStream; import java.io.IOException; import java.io.ObjectInputStream; import bean.Person; public class ObjectInputStreamDemo { public static void main(String[] args) throws IOException, ClassNotFoundException { readObject(); } public static void readObject() throws IOException, ClassNotFoundException { ObjectInputStream ois = new ObjectInputStream(new FileInputStream("obj.Object")); //Object obj = ois.readObject();//ObjectInputStream类特有方法,用于读取对象 /** * 调用readObject()方法需要抛出异常ClassNotFoundException,因为任何对象在内存中存在都必须依赖该对象所属的类文件,即 * 字节码文件,所以如果当前计算机中只有obj.Object文件,而没有Person.class文件,那么无法取出完整的对象(但是可以读取信息)。 */ //一般都有Person.class文件,所以上一行代码没必要用Object接收,直接做向下强转 Person p = (Person)ois.readObject(); System.out.println(p.getName()+":"+p.getAge()); ois.close(); } } /* * 【总结】 * ObjectOutputStream和ObjectInputStream就是将对象从内存中存储到硬盘中→持久化。注意对象所属类别需要实现Serializable */
相关文章推荐
- 24-IO流-55-IO流(ObjectOutputStream-对象的序列化)
- jQuery函数(浏览器版本/isEmptyObject/isPlainObject/contains/trim/param/extend)
- Objective-C:动态绑定
- 详解Objective-C runtime
- public static T CloneObject<T>(this T obj) where T:class{}
- JS - Object and Property的删除用法
- 再探Java基础——String.format(String format, Object… args)的使用
- Objective-C学习笔记
- Objective-C Runtime 运行时
- html5的FormData对象和input的file属性以及window.URL.createObjectURL( ) 方法
- NSMutableArray在removeAllObjects时崩溃
- Java object类型转换为int类型
- Java中Object转化为int类型
- ObjectARX获取实体个数
- 每日20行之3~~~ThreadPool之RegisterWaitForSingleObject 自动定时执行(可循环)
- IOS学习笔记04-Swift语言与Objective-C语言混合编程
- Android Volley框架(一):StringRequest、JsonObjectRequest、JsonArrayRequest
- error LNK2019: 无法解析的外部符号 _cvHaarDetectObjects,该符号在函数 "void __cdecl detect_and_draw(struct _IplImage
- [Objective-C] 015_Delegate(委托代理)
- Object-C类目、延展