Java中输入和输出处理(四)序列化和反序列化

Java中输入和输出处理(四)序列化和反序列化的笔记

一、序列化

序列化是将对象的状态信息转换为可以存储或传输的形式的过程。在Java中,我们可以使用java.io.Serializable接口来实现对象的序列化。
示例:

import java.io.*;class Person implements Serializable {private String name;private int age;public Person(String name, int age) {this.name = name;this.age = age;}public String toString() {return "Person [name=" + name + ", age=" + age + "]";}
}public class SerializeDemo {public static void main(String[] args) {Person person = new Person("张三", 30);try {// 将对象写入文件FileOutputStream fos = new FileOutputStream("person.ser");ObjectOutputStream oos = new ObjectOutputStream(fos);oos.writeObject(person);oos.close();fos.close();System.out.println("对象序列化成功,已保存到person.ser文件中");} catch (IOException e) {e.printStackTrace();}}
}

二、反序列化

反序列化是将字节流转换回对象的过程。在Java中,我们可以使用java.io.ObjectInputStream类来实现对象的反序列化。以下是一个简单的反序列化示例:

import java.io.*;class Person implements Serializable {private String name;private int age;public Person(String name, int age) {this.name = name;this.age = age;}public String toString() {return "Person [name=" + name + ", age=" + age + "]";}
}public class DeserializeDemo {public static void main(String[] args) {Person person = null;try {// 从文件中读取对象FileInputStream fis = new FileInputStream("person.ser");ObjectInputStream ois = new ObjectInputStream(fis);person = (Person) ois.readObject();ois.close();fis.close();System.out.println("对象反序列化成功,已从person.ser文件中读取");} catch (IOException | ClassNotFoundException e) {e.printStackTrace();}System.out.println("反序列化后的对象:" + person);}
}

在这个示例中,我们首先创建了一个Person对象,然后将其序列化并保存到person.ser文件中。接着,我们从该文件中读取对象并进行反序列化,最后输出反序列化后的对象。

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

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

相关文章

提高iOS App开发效率的方法

引言 随着智能手机的普及,iOS App开发成为越来越受欢迎的技术领域之一。许多人选择开发iOS应用程序来满足市场需求,但是iOS App开发需要掌握一些关键技术和工具,以提高开发效率和质量。本文将介绍一些关键点,可以帮助你进行高效的…

Flying HTML生成PDF添加水印

HTML转PDF并添加水印 <!-- 用于生成PDF --> <dependency><groupId>org.xhtmlrenderer</groupId><artifactId>flying-saucer-pdf</artifactId><version>9.1.20</version> </dependency>import java.io.File; import jav…

os.path模块常用函数

os.path模块提供用于处理文件路径的函数&#xff0c;这些函数可以跨平台使用&#xff0c;因为他们会根据操作系统的不同选择适当的路径分隔符。 1.os.path.join(path, *paths) 作用&#xff1a;将多个路径组合成一个完整的路径 path os.path.join(/path/to example file.…

基础知识篇(一)Acticity生命周期

Activity 类是 Android 应用的关键组件&#xff0c;而 activity 的启动和组合方式是平台应用模型的基本组成部分。与使用 main() 方法启动应用的编程范式不同&#xff0c;Android 系统会通过调用与其生命周期特定阶段对应的特定回调方法&#xff0c;在 Activity 实例中启动代码…

ChatGpt使用技巧

通用类技巧 角色扮演 比如让ChatGpt扮演500强营销专家 告诉ChatGpt你的身份。初学者、或是有一定能力、知识的学习者等 限制ChatGpt回答长度 100~200字之间 让ChatGpt一步一步思考 他会预测下一个单词&#xff0c;根据prompt进行生成 明确你的要求和目的 说清楚问题&#x…

为什么杭州的独角兽公司的技术专家都是阿里巴巴出来的?

在浙江杭州有一个不成为的规定&#xff0c;独角兽公司招聘技术人才的时候&#xff0c;尤其是阿里巴巴出来的技术专家&#xff0c;面试官都是争先恐后的面试&#xff0c;总是想第一时间把这个人拿到手&#xff0c;当然前提是这个技术专家不是水货。 猎头推荐人才的时候&#xf…

网络安全(网络安全)—2024自学

1.网络安全是什么 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 2.网络安全市场 一、是市场需求量高&#xff1b; 二、则是发展相对成熟…

Docker 配置国内镜像源加速

1. 国内镜像源总览 名称路径中国官方镜像https://registry.docker-cn.com网易163镜像http://hub-mirror.c.163.com中科大镜像https://docker.mirrors.ustc.edu.cn阿里云镜像https://[xxx].mirror.aliyuncs.com 2. 阿里云镜像源 地址&#xff1a;https://cr.console.aliyun.c…

同样的行情为什么有人亏损有人盈利?现货白银关键的管理细节要知道

给同样一波趋势行情两个人做交易&#xff0c;就算大家执行一样的交易策略&#xff0c;但结果却也有可能有所不同&#xff0c;有人盈利有人亏损&#xff0c;而盈利的人中可能有的人多&#xff0c;有的人少&#xff0c;这是为什么呢&#xff1f;其实很多投资者忽略了进行现货白银…

修改SSH默认端口,使SSH连接更安全

以CentOS7.9为例&#xff1a; 1、修改配置文件 vi /etc/ssh/sshd_config 2、远程电脑可连接&#xff0c;暂时将SELinux关闭 # 查询状态 getenforce # 关闭 setenforce 0 # 开启 setenforce 1 3、SELinux设置&#xff08;如果启用&#xff09;&#xff0c;semanage管理工具安…

想寻找Axure的替代品?我们已经试用了10+款设计工具,来看看吧!

Axure是许多产品经理和设计师进入快速原型设计的首选工具&#xff0c;但Axure的使用成本相对较高&#xff0c;学习曲线陡峭&#xff0c;许多设计师正在寻找可以取代Axure的原型设计工具&#xff0c;虽然现在有很多可选的设计工具&#xff0c;但质量不均匀&#xff0c;可以取代A…

【PaperReading】3. PTP

Category Content 论文题目 Position-guided Text Prompt for Vision-Language Pre-training Code: ptp 作者 Alex Jinpeng Wang (Sea AI Lab), Pan Zhou (Sea AI Lab), Mike Zheng Shou (Show Lab, National University of Singapore), Shuicheng Yan (Sea AI Lab) 另一篇…

老师的课堂行为包括什么内容

课堂行为对于学生的学习体验和成长至关重要。我在课堂上的一举一动&#xff0c;不仅影响着学生的学习效果&#xff0c;还关系着学生的心理健康和人格发展。那么&#xff0c;老师的课堂行为究竟包括哪些内容呢&#xff1f;接下来&#xff0c;我将以知乎老师的口吻&#xff0c;为…

Xbox无法登陆解决方式

以下为常见好用的解决XBOX无法登陆的方式 检查网络连接&#xff1a;确保您的网络连接正常&#xff0c;可以尝试访问其他网站或应用程序&#xff0c;以排除网络故障的可能。重启Xbox&#xff1a;尝试按下主机上的关机按钮&#xff0c;等待片刻后再重新开启。有时候&#xff0c;…

Shell编程--grep、egrep

grep 1. grep正则过滤---基本正则匹配1.1 * 0或多个1.2 \ < 词首定位符号 \ >词尾定位符号1.3 ^ 以什么开头1.4 $ 以什么结尾1.5 . 匹配单个字符1.6 .* 任意多个字符1.7 [ ] 匹配方括号中的任意一个字符1.8 [ - ] 匹配指定范围内的一个字符1.9 [^ ] 匹配不在指定组内的字…

LInux初学之路linux的磁盘分区/远程控制/以及关闭图形界面/查看个人身份

虚拟机磁盘分配 hostname -I 查看ip地址 ssh root虚拟就ip 远程连接 win10之后才有 远程控制重新启动 reboot xshell 使用&#xff08;个人和家庭版 免费去官方下载&#xff09; init 3 关闭界面 减小内存使用空间 init 5 回复图形界面 runlevel显示的是状态 此时和上…

《微信小程序开发从入门到实战》学习八十

6.11 内部音频API 小程序播放音频的方式有两种&#xff1a;内部音频和背景音频。内部音频支持用户使用小程序时播放音频&#xff1b;背景音频支持用户离开小程序后继续播放音频。 6.11.1内部音频API 使用wx.createInnerAudioContext接口创建内部音频上下文对象。在上下文对象…

渗透测试:保障网络安全的重要手段!

随着信息技术的快速发展&#xff0c;网络安全问题日益受到关注。渗透测试作为一种重要的网络安全检测和评估方法&#xff0c;已经成为保障网络安全的重要手段之一。本文将介绍渗透测试的基本概念、流程、以及在保障网络安全方面的应用。 一、渗透测试的基本概念 渗透测试是一…

java项目之留学生交流互动论坛(ssm)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的留学生交流互动论坛。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 管理员&#xff1a;首页、个…

PyQt UI 信号槽函数重复执行问题

PyQt环境下&#xff0c;信号connect槽函数的方法有两种&#xff1a; &#xff08;1&#xff09;使用connect&#xff08;&#xff09; 示例代码&#xff1a;对话框SelectingDlg&#xff0c;上设置了一个pushbutton控件 class SelectingDlg(Ui_SelectingDlg,QDialog):def __i…