java的序列化和反序列化

news2024/12/26 11:11:30

一、概念

序列化是将对象的常态存储到特定的存储介质中的过程。

反序列化是将特定的存储介质中的数据重新构建对象的过程。

45d8d92b3b534835990cbd1f8b1b405e.png

问题

为每个对象属性——编写读写代码,过程很繁琐且非常容易出错,如何解决?

8cfd13ab7a504237b8f4e777cd7f499c.png 

二、使用Object Output Stream类实现序列化

a.序列化的对象所属类必须为可序列化的类。

b.一个类实现java.io.Serializable接口,该类的对象是可序列化的。

ccf9b64dc7d2486c908fc5d4478daa4f.png 

c.示例

1.创建一个Person类,并标记该类的对象是可序列化的

6eb47cc89ef34e4095346043b540a5f1.png 

2.创建person对象,将其序列化保存在D:\\doc\\person.bat文件中。

6baef7b3c8c8482e9f91b2b27c1a83d3.png

 3.保存多个Person对象到D:\doc\person.bat文件中

d04397b4b9fb44d19da93a87a6018706.png

 

d.常用方法

91dfc5741cc34505aebe35d91faa8b30.png 

 e.实现步骤

600266ad4f3744a488e9de04eb1b113e.png

 三、使用Object Input Stream类实现反序列化

a.使用对象输出流Object Input Stream可以还原序列化对象。

b.常用方法

f8fbd096eb2c4efe9ca1a6f66727b807.png

c.示例

读取D:/doc/person.bat文件中一个Person对象的数据。

daf860221960465ea27558370b3b3041.png 

读取文件D:/doc/person.bat中多个Person对象的数据。

4f3eadcd03dc49f18b15b12557041a69.png 

d.实现步骤

849b95fcf3bf4dbb9bf253d118752803.png 

 

今日总结就到此结束啦,拜拜!

0f9d0759a9a0413eb7e3d1ea3e5093bc.png 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1877682.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

敏捷开发笔记(第9章节)--开放-封闭原则(OCP)

目录 1:PDF上传链接 9.1 开放-封闭原则(OCP) 9.2 描述 9.3 关键是抽象 9.3.1 shape应用程序 9.3.2 违反OCP 糟糕的设计 9.3.3 遵循OCP 9.3.4 是的,我说谎了 9.3.5 预测变化和“贴切的”结构 9.3.6 放置吊钩 1.只受一次…

Spring专题一:源码编译

下载源码 因为公司使用的是Spring5.2.x所以就下载了这个版本,github源码地址如下: GitHub - spring-projects/spring-framework at v5.2.6.RELEASE: 如果网络不稳定可以使用下载压缩版即可,网络稳定的话还是建议使用git clone …

C语言的数据结构:树与二叉树(哈夫曼树篇)

前言 上篇讲完了二叉树,二叉树的查找性能要比树好很多,如平衡二叉树保证左右两边节点层级相差不会大于1,其查找的时间复杂度仅为 l o g 2 n log_2n log2​n,在两边层级相同时,其查找速度接近于二分查找。1w条数据&am…

今日AI提示词|新媒体运营场景-小红薯笔记通用指令

指令写作的技巧与步骤 明确定义需求 提供足够的上下文 使用简单直白的语言 举例说明 添加限制条件 多次迭代优化,给出详细的要求 小红薯笔记通用指令 从现在开始,你担任我的小红书创作者。你的任务是根据我提供给你的主体,撰写一篇小…

运维锅总详解HAProxy

本文尝试从HAProxy简介、HAProxy工作流程及其与Nginx的对比对其进行详细分析;在本文最后,给出了为什么Nginx比HAProxy更受欢迎的原因。希望对您有所帮助! HAProxy简介 HAProxy(High Availability Proxy)是一款广泛使…

开源项目-商城管理系统

哈喽,大家好,今天主要给大家带来一个开源项目-商城管理系统 商城管理系统分前后端两部分。前端主要有商品展示,我的订单,个人中心等内容;后端的主要功能包括产品管理,门店管理,会员管理,订单管理等模块 移动端页面

汽车电子工程师入门系列——AUTOSAR通信服务框架(上)

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…

uniapp+vue3开发微信小程序踩坑集

本文主要记录使用uniappvue3开发微信小程序遇见的各种常见问题及注意点。(持续更新) 问题: 自定义组件为什么有些样式加不上去 给自定义组件增加class的时候,有时候不生效有时候生效,一度让我怀疑自己记忆错乱。后来…

实验 1 图像基本操作

1. 实验目的 ①熟悉 Photoshop 基本操作; ②掌握 Matlab 、PythonOpenCV 中处理图像的基本方法; ③掌握图像的半调转换和抖动转换。 2. 实验内容 ①Photoshop 基本操作:打开图像文件,选择区域,旋转、裁剪图像、图层…

PHP电商系统开发指南数据库管理

回答:数据库管理是电商系统开发的关键,涉及数据的存储、管理和检索。选择合适的数据库引擎,如mysql或 postgresql。创建数据库架构,定义数据的组织方式(如产品表、订单表)。进行数据建模,考虑实…

华润万家超市卡怎么用?

华润的礼品卡不仅能线下门店使用,还能直接叫送货上门 我最近用积分兑了几张华润卡,但是又没有购物需求,送朋友吧面值又不大,朋友也说用不上 最后朋友建议我在收卡云上把卡出掉,我试了下92折出掉了,价格还…

MySQL高级-MVCC-基本概念(当前读、快照读)

文章目录 1、MVCC基本概念1.1、当前读1.1.1、创建表 stu1.1.2、测试 1.2、快照读 1、MVCC基本概念 全称Multi-Version Concurrency Control,多版本并发控制。指维护一个数据的多个版本,使得读写操作没有冲突,快照读为MySQL实现MVCC提供了一个…

Python之父推荐!Star 60k!这本 CPython 书把内部实现全讲透了!

都说 Python 是人工智能的“天选”语言,为什么呢? 可能很多读者都知道,Python 的解释器是用 C 语言写的,所以其实我们在谈论 “Python” 的时候,99.9% 的情况说的就是 “CPython”! CPython 是目前最流行的…

《昇思25天学习打卡营第11天 | 昇思MindSpore基于 MindSpore 实现 BERT 对话情绪识别》

11天本节学习到BERT全称是来自变换器的双向编码器表征量,它是Google于2018年末开发并发布的一种新型语言模型。BERT模型的主要创新点都在pre-train方法上,即用了Masked Language Model和Next Sentence Prediction两种方法分别捕捉词语和句子级别的repres…

数学学习与研究杂志社《数学学习与研究》杂志社2024年第6期目录

课改前沿 基于核心素养的高中数学课堂教学研究——以“直线与圆、圆与圆的位置关系”为例 张亚红; 2-4 核心素养视角下初中生数学阅读能力的培养策略探究 贾象虎; 5-7 初中数学大单元教学实践策略探索 耿忠义; 8-10《数学学习与研究》投稿:cn7kantougao…

x3daudio1_7.dll在哪个文件夹?打开游戏提示找不到x3daudio1_7.dll怎么解决?

电脑打开游戏软件时候,我相信大部分人都会遇到提示找不到x3daudio1_7.dll文件。或错误代码126:加载x3daudio1_7.dll失败等等问题,那这个是怎么回事呢?需要怎么解决这个问题?下面我给大家一一解答。 一、x3daudio1_7.dl…

C#测试调用DotnetSpider爬取网页内容

微信公众号“DotNet”的文章《.NET快速实现网页数据抓取》介绍了调用开源网页爬取模块DotnetSpider爬取cnblog网站文章的基本方式。之前学习过使用HtmlAgilityPack抓取并分析网页内容,DotnetSpider也依赖HtmlAgilityPack模块,不过前者属于轻量、高效的爬…

昇思MindSpore学习笔记5--数据变换Transforms

摘要: 昇思MindSpore的数据变换,包括通用变换Common Transforms、图像变换Vision Transforms、标准化Normalize、文本变换Text Transforms、匿名函数变换Lambda Transforms。 一、数据变换Transforms概念 原始数据需预处理后才能送入神经网络进行训练…

docker网络功能介绍

一、 网络启动过程二、 修改容器dns和主机名① 临时处理(容器终止或重启后不会保存)② 通过参数指定 三、 容器内访问控制① 容器访问外部网络② 容器间互相访问(1)访问所有端口(2)访问指定端口 四、 docke…

.[emcrypts@tutanota.de].mkp勒索病毒新变种该如何应对?

引言 在数字化时代,随着信息技术的迅猛发展,网络安全问题日益凸显。其中,勒索病毒作为一种极具破坏力的恶意软件,给个人和企业带来了巨大的经济损失和数据安全风险。近期,一种名为“.mkp勒索病毒”的新型威胁开始在网络…