首页 > 编程语言 >Java基础 序列化流、反序列化流

Java基础 序列化流、反序列化流

时间:2023-10-25 16:38:26浏览次数:39  
标签:文件 Java 读取 对象 基础 new 序列化

 

序列化流是高级流,也是用来包装基本流的

序列化流属于 字节流 的一种,负责输出数据;反序列化流负责输入数据

 

序列化流 可以把 Java 中的 对象 写到本地文件中。但是写到文件中的数据我们看不懂,可以通过反序列化流把数据正确读取出来

序列化流 也叫 对象操作输出流

 

 

序列化流:

构造方法:public  ObjectOutputStream (OutputStream  out)   →   把基本流包装成高级流

成员方法:public  final  void  writeObject (Object  obj)   →   把对象序列化(写出)到文件中去

 

序列化流的细节:

使用 对象输出流 将 对象 保存到文件时会出现 NotSerializableException 异常,需要让 Javabean 类实现 Serializable 接口

Serializable 接口里面是没有抽象方法的,像这种没有抽象方法的接口叫做 标记型接口。一旦实现了这个接口,那么就表示当前的 Javabean 类可以被序列化

 

eg:利用序列化流,把一个对象写到本地文件中

Student stu = new Student("张三", 23);
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("E:\\Java基础资料\\b.txt"));
oos.writeObject(stu);
oos.close();

 

 

反序列化流(对象操作输入流):

反序列化流 可以把序列化到本地文件中的对象 读取到程序中来

 

反序列化流:

构造方法:public  ObjectInputStream (InputStream  out)   →   把基本流变成高级流

成员方法:public  Object  readObject ()   →   把序列化到本地文件中的对象 读取到程序中来;返回值就是读取到的对象,但是 是Object类型的,还需要强转一下

 

eg:把序列化到本地文件中的对象读取到程序中来

ObjectInputStream ois = new ObjectInputStream(new FileInputStream("E:\\Java基础资料\\b.txt"));
Object o = ois.readObject();
System.out.println(o);
ois.close();

 

标签:文件,Java,读取,对象,基础,new,序列化
From: https://www.cnblogs.com/gagaya2/p/17787502.html

相关文章

  • 序列化与反序列化
    一、什么是序列化与反序列化?Java序列化是指把Java对象转换为字节序列的过程;Java反序列化是指把字节序列恢复为Java对象的过程;二、为什么要用序列化与反序列化?在 为什么要用序列化与反序列化 之前我们先了解一下对象序列化的两种用途:把对象的字节序列永久地保存到硬......
  • 从0到1,全面学透区块链:掌握区块链的基础理论和技术
    从0到1,全面学透区块链:掌握区块链的基础理论和技术1、简介​区块链是一个又一个区块组成的链条。每一个区块中保存了一定的信息,它们按照各自产生的时间顺序连接成链条。这个链条被保存在所有的服务器中,只要整个系统中有一台服务器可以工作,整条区块链就是安全的。这些服务器在......
  • JavaScript 中的深度克隆
    JavaScript中的深度克隆涉及创建一个新对象,该对象是现有对象的副本,并将复制延续到所有嵌套属性,以确保两个对象完全独立。这项技术对于保持程序中的不变性等任务至关重要,对于处理React等框架中的状态尤其重要。它有助于防止意外的对象突变可能引起的错误,从而产生更易于维护且无......
  • java的Long类型进行比较
    在Java中,对于Long类型的对象,如果它们包含的值在范围[-128,127]之间,它们会被缓存,以便在整数范围内进行重用。这是因为Java的自动装箱(autoboxing)机制的一部分。 问题:long类型127的比较 Long类型129的比较 如果你想在[-128,127]之外进行值的比较,而不是引用的比较,你应该使......
  • java DiffUtils文本差异对比实现
    1、首先引入mvn<dependency><groupId>io.github.java-diff-utils</groupId><artifactId>java-diff-utils</artifactId><version>4.11</version></dependency><dependency><groupId>org.apache.poi</......
  • 基于Java的垃圾分类管理系统
    (文章目录)具体实现截图主要功能:基于java(ssm)垃圾分类管理系统系统分为小区和管理员两个角色小区的主要功能有:1.小区管理者登陆系统2.垃圾分类信息查看3.垃圾站信息查看4.垃圾运输信息查看5.小区管理者在线报修申请,删除,修改,查询报修信息6.小区管理员在线投诉,删除,修改,查......
  • java MAP集合
    javaMAP集合map集合的特点有哪些?map集合是无序的,键值对,建不能重复,值可以重复,集合中的键可以为空如何给map集合赋值?可以调用map.put()方法,进行赋值(注意!键不可以重复)如何获取到map集合的值?可以调用map.get()方法,可以通过键获取值运行结果如何遍历map集合?便利map集合的......
  • Java拾贝第十一天——IO之File类
    Java拾贝不建议作为0基础学习,都是本人想到什么写什么Java中提供了IO以操控计算机中的文件File类在整个IO包中,与文件相关的类就是File类。使用它可以进行创建或删除文件因为File类是个普通类,初始化它需要调用其有参构造publicFile(Stringpathname){//传参为文件路径}使......
  • 华为云耀云服务器L实例:初级篇-java环境配置
     华为云耀云服务器L实例是一款可快速部署且易于运维的轻量级云服务器,专为中小企业和入门级开发者打造。它不仅拥有华为云擎天架构的强大性能,还具有多项用户体验优化方案,让用户轻松上手,享受简单上云的乐趣。本产品网址为:https://www.huaweicloud.com/product/hecs-light.html......
  • java spring,springmvc,spring boot,spring data,RESTful api设计风格,HTTP协议的四种传
    一.基本技术1.Springmvc=手动接电线(配置xml),提供了一种友好的方式来开发Web应用程序。通过使用诸如DispatcherServlet,ModelAndView和ViewResolver,可以轻松开发Web应用程序。2.SpringBoot=标准插座(第3方开源类库想接入,就按照标准做一个starter的适配),实现了免xml配置和提供......