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相关推荐

  1. Socket.io:有点意思

    个人网站 欢迎品尝 edwardesire.com 下面页面就是使用Socket.io制作的口袋妖怪游戏(默认小屏下已隐藏,请切换到大分辨率查看).左边是游戏画面,右边是按键表和聊天室.画面达到红蓝版 ...

  2. Linux IO体系、零拷贝和虚拟内存关系的重新思考

    目录 1. 关系梳理 2. 我们先看虚拟内存到底解决什么问题? 3. Linux IO体系重点解决什么问题? 4. 零拷贝重点解决什么问题? 4.1 为什么会谈零拷贝? 4.2 传统IO方式有什么问题 ...

  3. jboss1.7_在JBoss Fuse / Fabric8 / Karaf中使用Byteman

    jboss1.7 您是否曾经尝试了解一些简单的东西不起作用的过程? 您正在任何众所周知的上下文中编写代码,并且无论出于何种原因它都无法正常工作. 而且您信任您的平台,因此您认真阅读了所有日志.而且您仍 ...

  4. jboss fuse 教程_在JBoss Fuse / Fabric8 / Karaf中使用Byteman

    jboss fuse 教程 您是否曾经尝试了解一些简单的东西不起作用的过程? 您正在任何众所周知的上下文中编写代码,无论出于何种原因它都无法正常工作. 而且您信任您的平台,因此您认真阅读了所有日志. ...

  5. 在JBoss Fuse / Fabric8 / Karaf中使用Byteman

    您是否曾经尝试过了解一些非常简单的方法不起作用的过程? 您正在任何众所周知的上下文中编写代码,无论出于何种原因它都无法正常工作. 而且您信任您的平台,因此您认真阅读了所有日志. 而且,您仍然不知道为什 ...

  6. python 示例_带有示例的Python文件关闭属性

    python 示例 文件关闭属性 (File closed Property) closed Property is an inbuilt property of File object (IO ob ...

  7. Python 3 的新特性zz

    Python 版本 3,也被称为 Python 3000 或 Py3K(仿效 Microsoft® Windows® 2000 操作系统而命名的昵称)是 Guido van Rossum 通用编程语言 ...

  8. Java基础面试题(2012完整版)

    第一部分 Java的类 1. 请解释Java语言的跨平台特性. 解析:虽然不知道什么是跨平台也可以使用Java语言进行编程,但是对于一个Java编程员来说,理解跨平台特性能够更深入掌握Java语言,所 ...

  9. Netty4.x用POJO代替ByteBuf案例

    讲解一下内容: 什么是pojo; 为什么使用pojo代替ByteBuf; 使用pojo代替ByteBuf案例; 1.什么是POJO POJO(Plain Ordinary Java Object)即普 ...

最新文章

  1. Linux文本搜索工具grep
  2. 分享:Orthanc 0.4.0 发布,DICOM 服务器
  3. 腾讯AI Lab宣布将于9月底开源“Tencent ML-Images”项目
  4. c语言锁屏密码程序,求一个VB锁屏程序的源文件
  5. CXF(2.7.10) - A simple JAX-WS service
  6. Flutter ScrollView 滑动组件
  7. 来自官方文档的Ubuntu 16.04 + tensorflow-GPU 配置
  8. 两种方法清空memcache
  9. 面试官问:Mybatis Plus 是如何实现动态 SQL 语句的?原理你懂吗?
  10. HttpResponseCode错误码整理
  11. 心电监护仪数据图解_【 心电监护仪怎么看图解】_检查结果_如何查看-大众养生网...
  12. 代写品牌故事怎么写才能打动消费者
  13. 知乎上演的“变形计“,资本市场会打几分?
  14. python神经网络训练效果差_为什么我的神经网络验证精度比我的训练精度高,并且两者都变得恒定? - python...
  15. Day7 字符串详解——python学习之路
  16. mysql教程源码_MySql轻松入门系列————第一站 从源码角度轻松认识mysql整体框架图...
  17. 按头安利 好看又实用的游戏场景3d模型素材看这里
  18. 数据结构-链表、队列、栈、哈希表
  19. 基于Java的出租车管理系统设计与实现
  20. 错误处理(二)—— Exception from HRESULT: 0x800A03EC

热门文章

  1. vue封装图片滑块验证+读秒组件
  2. nod-1631-小鲨鱼在51nod小学
  3. 什么叫做副作用的函数
  4. 做了6年开发,工资涨不上去,怎么办?
  5. UEFI安装win7过程的另类引导系统
  6. MySQL的主机什么什么_什么是mysql虚拟主机?什么是mysql数据库?
  7. 无标注数据是鸡肋还是宝藏?阿里工程师这样用它​
  8. 英文连写字体怎么练_衡水英文字体视频教程
  9. Windows Update有用吗
  10. 瀚高金蝶部署报错net::ERR_EMPTY_RESPONSE