Object IO Exercise
Object IO Exercise
介绍:
解决多个对象存储到文件中,从文件中取出多个对象
- 分析:
1.定义一个存储person类的集合的ArrayList
2.往ArrayList中存储Person对象
3.创建一个序列化流ObjectOutputStream对象
4.使用ObjectOutputStream对象中的方法writeobject,对集合进行序列化
5.创建一个反序列化ObjectInputStream对象
6.使用ObjectInputStream对象中的方法readObject读取文件中保存的集合
7.把Object类型中的集合转换为Arraylist类型
8.遍历ArrayList集合
9.释放资源
创建person对象
补充:
列化和反序列化的时候会抛出NotSerializableException没有序列化的异常
public class NotSerializableException抛出一个实例需要一个Serializable接口。
Serializable接口也叫标记型接口
要进行序列化和反序列化的类必须实现Serializable接口,就会给类标记
当我们进行序列化和反序列化的时候,就会检测类上是否有这个标记
有:就可以序列化和反序列化
没有,就会抛出上面的异常*/
/*static关键字:静态关键字
- 静态优先于非静态加载到内存中(静态对象优先于对象进入到内存中)
- 被static修饰的成员变量不能被序列化,序列化的都是对象
- private static int age;得到的结果中age为0值
*transient关键字:瞬态关键字 - 被transient修饰成员变量,不能被序列化,值也是0
代码块:
public class Person implements Serializable {private String name;private /*public*/ /*transient*/ int age;static final long serialVersionUID = 42L;public Person() {}public Person(String name, int age) {this.name = name;this.age = 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;}@Overridepublic String toString() {return "Person{" +"name='" + name + '\'' +", age=" + age +'}';}
}
实现类:
public class Demo03SolutiontoMany {public static void main(String[] args) throws IOException, ClassNotFoundException {//1.定义一个存储person类的集合的ArrayListArrayList<Person> p=new ArrayList<>();//2.往ArrayList中存储Person对象p.add(new Person("迪丽热巴1",16));p.add(new Person("迪丽热巴2",17));p.add(new Person("迪丽热巴3",18));p.add(new Person("迪丽热巴4",19));p.add(new Person("迪丽热巴5",20));//3.创建一个序列化流ObjectOutputStream对象//4.使用ObjectOutputStream对象中的方法writeobject,对集合进行序列化ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream("cn\\itcast\\IO\\Serializable\\Objects.txt"));oos.writeObject(p);//5.创建一个反序列化ObjectInputStream对象//6.使用ObjectInputStream对象中的方法readObject读取文件中保存的集合ObjectInputStream ois=new ObjectInputStream(new FileInputStream("cn\\itcast\\IO\\Serializable\\Objects.txt"));Object o = ois.readObject();//7.把Object类型中的集合转换为Arraylist类型ArrayList<Person> p2=(ArrayList<Person>)o;//8.遍历ArrayList集合for (Person ps:p2) {System.out.println(ps.getName()+"的年龄是:"+ps.getAge());}//9.释放资源ois.close();oos.close();}
}
Object IO Exercise相关推荐
- Socket.io:有点意思
个人网站 欢迎品尝 edwardesire.com 下面页面就是使用Socket.io制作的口袋妖怪游戏(默认小屏下已隐藏,请切换到大分辨率查看).左边是游戏画面,右边是按键表和聊天室.画面达到红蓝版 ...
- Linux IO体系、零拷贝和虚拟内存关系的重新思考
目录 1. 关系梳理 2. 我们先看虚拟内存到底解决什么问题? 3. Linux IO体系重点解决什么问题? 4. 零拷贝重点解决什么问题? 4.1 为什么会谈零拷贝? 4.2 传统IO方式有什么问题 ...
- jboss1.7_在JBoss Fuse / Fabric8 / Karaf中使用Byteman
jboss1.7 您是否曾经尝试了解一些简单的东西不起作用的过程? 您正在任何众所周知的上下文中编写代码,并且无论出于何种原因它都无法正常工作. 而且您信任您的平台,因此您认真阅读了所有日志.而且您仍 ...
- jboss fuse 教程_在JBoss Fuse / Fabric8 / Karaf中使用Byteman
jboss fuse 教程 您是否曾经尝试了解一些简单的东西不起作用的过程? 您正在任何众所周知的上下文中编写代码,无论出于何种原因它都无法正常工作. 而且您信任您的平台,因此您认真阅读了所有日志. ...
- 在JBoss Fuse / Fabric8 / Karaf中使用Byteman
您是否曾经尝试过了解一些非常简单的方法不起作用的过程? 您正在任何众所周知的上下文中编写代码,无论出于何种原因它都无法正常工作. 而且您信任您的平台,因此您认真阅读了所有日志. 而且,您仍然不知道为什 ...
- python 示例_带有示例的Python文件关闭属性
python 示例 文件关闭属性 (File closed Property) closed Property is an inbuilt property of File object (IO ob ...
- Python 3 的新特性zz
Python 版本 3,也被称为 Python 3000 或 Py3K(仿效 Microsoft® Windows® 2000 操作系统而命名的昵称)是 Guido van Rossum 通用编程语言 ...
- Java基础面试题(2012完整版)
第一部分 Java的类 1. 请解释Java语言的跨平台特性. 解析:虽然不知道什么是跨平台也可以使用Java语言进行编程,但是对于一个Java编程员来说,理解跨平台特性能够更深入掌握Java语言,所 ...
- Netty4.x用POJO代替ByteBuf案例
讲解一下内容: 什么是pojo; 为什么使用pojo代替ByteBuf; 使用pojo代替ByteBuf案例; 1.什么是POJO POJO(Plain Ordinary Java Object)即普 ...
最新文章
- Linux文本搜索工具grep
- 分享:Orthanc 0.4.0 发布,DICOM 服务器
- 腾讯AI Lab宣布将于9月底开源“Tencent ML-Images”项目
- c语言锁屏密码程序,求一个VB锁屏程序的源文件
- CXF(2.7.10) - A simple JAX-WS service
- Flutter ScrollView 滑动组件
- 来自官方文档的Ubuntu 16.04 + tensorflow-GPU 配置
- 两种方法清空memcache
- 面试官问:Mybatis Plus 是如何实现动态 SQL 语句的?原理你懂吗?
- HttpResponseCode错误码整理
- 心电监护仪数据图解_【 心电监护仪怎么看图解】_检查结果_如何查看-大众养生网...
- 代写品牌故事怎么写才能打动消费者
- 知乎上演的“变形计“,资本市场会打几分?
- python神经网络训练效果差_为什么我的神经网络验证精度比我的训练精度高,并且两者都变得恒定? - python...
- Day7 字符串详解——python学习之路
- mysql教程源码_MySql轻松入门系列————第一站 从源码角度轻松认识mysql整体框架图...
- 按头安利 好看又实用的游戏场景3d模型素材看这里
- 数据结构-链表、队列、栈、哈希表
- 基于Java的出租车管理系统设计与实现
- 错误处理(二)—— Exception from HRESULT: 0x800A03EC