序列化流.

简介: 序列化流.

把对象以流的方式写入到文件中保存,叫做写对象,也叫对象的系列化 writeObject§

ObjectOutputStream 对象的序列化流

构造方法

ObjectOutputStream(OptputStream out) 创建指定的 ObjectOutputStream的objectOutputStream

参数

OptputStream out 字节输出流

特有的成员方法

void writeObject(object obj) 将指定的对象写入objectOutputStream中

使用步骤

创建objectOutputStream对象构造方法中传递字节输出流

使用objectOutputStream对象中的方法writeobject把对象写入到文件中

资源释放

ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("D:\\lianxi\\lianxi1\\oo.txt"));
oos.writeObject(new Jjcid("小美女",18));
oos.close();


注意:序列化和反序列化的时候会抛出没有序列化的异常

通过实现 Serializable接口以启动其序列化功能,未实现此接口的类无法序列化或反序列化

public class Jjcid implements Serializable {


把文件中保存的对象,以流的方式读取出来,叫做读对象,也叫对象的反序列化 readObject()

ObjectInputStream类

构造方法

ObjectInputStream(InputStream in)创建指定InputStream 读取objInputStream

参数

InputStream in 字节输入流

特有的成员方法

object readObj() 读取对象

使用步骤

创建ObjectInputStream对象,构造方法中传递字节输入流

使用ObjectInputStream对象中的方法readobject读取保存对象的文件

释放资源

使用读取出来的对象打印看看

注意:必须存在类对应的class文件

加上一个序列号代码

private static final long serialVersionUID = 1L;

ObjectInputStream ois = new ObjectInputStream(new FileInputStream("D:\\lianxi\\lianxi1\\oo.txt"));
Object o = ois.readObject();
ois.close();
Jjcid j = (Jjcid)o;
System.out.println(j);


序列化集合

当我们想在文件中保存多个对象的时候

可以把多个对象储存到一个集合中

对集合进行序列化和反序列化

步骤

创建一个Person对象的ArrayList集合

在ArrayList集合中存储Person对象

创建一个序列化流ObjectOutputStream对象

使用ObjectOutputStream对象中的方法writeObject对集合进行序列化

创建一个反序列化ObjectInputStream对象

使用反序列化ObjectInputStream对象方法readObject读取文件中保存的集合

把Object类型的集合转换成ArrayList类型集合

释放资源

ArrayList<Person> list = new ArrayList<>();
list.add(new Person("张三",18));
list.add(new Person("李四",19));
list.add(new Person("王五",17));
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("D:\\lianxi\\lianxi1\\1.txt"));
oos.writeObject(list);
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("D:\\lianxi\\lianxi1\\1.txt"));
Object o = ois.readObject();
ArrayList<Person> list1 = (ArrayList<Person>) o;
for (Person p : list1) {
    System.out.println(p);
}
ois.close();
oos.close();


相关文章
|
存储 缓存 Android开发
android分区概述
android分区概述
1464 0
|
28天前
|
人工智能 数据挖掘 API
阿里云千问办公收费企业版价格198元1个月,企业旗舰版QwenWork费用298元/月/席(100席起)
阿里云千问办公企业版分标准版(198元/月/席)与旗舰版(298元/月/席,100席起购),分别提供基础模型、管理后台及VPC部署、API管控等能力;支持按需增购积分包。详情请见官网。阿里千问办公QwenWork官网:https://t.aliyun.com/U/JNKJuO 阿里AI工作平台,一句话完成数据分析、PPT 生成、视频剪辑、网页搭建等复杂任务
|
1月前
|
存储 弹性计算 人工智能
阿里云免费云服务器、免费云产品完整指南:领取实操教程、资源深度解析与避坑全攻略
对于个人开发者、在校学生以及初创小团队来说,云平台的免费试用资源是降低技术学习成本、开展项目原型验证、测试业务功能的重要途径。阿里云开放了数量庞大的免费云产品权益,覆盖计算、存储、数据库、网络、安全、AI开发等上百款产品,很多新手在初次接触的时候,常常搞不清楚哪些资源真正免费、领取需要满足什么条件、如何正确操作,同时还会踩到期自动扣费、资源超量产生账单等各类问题。本文将从权益基础认知、领取完整流程、各类免费资源深度解析、命令行实操、额度监控、避坑方案以及高频问题排查等多个维度,完整拆解阿里云免费云服务器与免费云产品的全部使用逻辑,帮助使用者真正做到零成本体验云能力,同时规避不必要的账单风险。
1105 0
|
1月前
|
IDE 开发工具 内存技术
Qoder CN 无法在规划完成后切换模型再执行计划
当前Qoder CN在规划阶段锁定模型,无法中途切换至Flash/Fast模型执行,需手动终止后切模重发“继续”。期望如Qoder CN IDE般支持规划完成后自由换模执行,但后者UI卡顿影响体验。(239字)
212 0
|
9月前
|
SQL Java 网络安全
Burp Suite Professional 2026.1 for Windows x64 - 领先的 Web 渗透测试软件
Burp Suite Professional 2026.1 for Windows x64 - 领先的 Web 渗透测试软件
444 4
|
8月前
|
监控 算法 计算机视觉
基于姿态估计与目标追踪的异常行为检测技术实现
本文提出端到端细粒度异常行为检测方案,融合人体姿态估计、物品轨迹追踪与手物交互建模,精准识别“拿取—遮挡—藏匿”等连续异常动作。支持高遮挡、弱动作、复杂光照场景,毫秒级响应,高召回低误报,适配普通摄像头大规模部署。
514 3
|
3月前
|
存储 人工智能 Shell
用Hook让Agent感知时间
本文采用 Hook 机制为 Agent 注入时间感知能力,实现方式为 UserPromptSubmit 事件 Hook + 全局规则声明,Shell 脚本共 23 行。Agent 的时间感知问题指的是:模型权重是静态的,训练数据有截止日期,推理时没有内置时钟,它的时间停在上一次预训练那天。一周前的会话今天接着聊,对用户来说过了一周,对 AI 来说时间没有流动。目前不少 Agent 框架通过系统提示词注入时间,本文介绍一种基于 Hook 的通用实现,详细介绍见全文
566 0
用Hook让Agent感知时间
|
4月前
|
人工智能 编解码
角色设计功能:从一张图,生成一整套角色一致性资产包
献丑AI画布的「角色设计」功能,让你从一张基准图出发,一键生成正面锚点、转面三视图、表情表、口型表、配色卡、服装拆解、道具图、定妆照等 12 项角色资产。
1175 0
|
9月前
|
数据采集 Web App开发 安全
uTLS高危指纹漏洞曝光:代理流量易被精准识别,开发者与用户紧急规避指南
uTLS曝高危漏洞,X25519密钥重用及加密套件矛盾致指纹暴露,流量易被识别。影响代理、爬虫等应用,建议禁用相关套件或升级修复版本,加强混淆策略以应对日益精准的TLS指纹检测。
825 6
|
10月前
|
运维 监控 Dubbo
微服务上云:基于EDAS的架构演进
本文介绍基于阿里云EDAS的微服务上云实践,涵盖架构演进挑战、Spring Cloud与Dubbo应用迁移、服务治理、灰度发布及单体应用改造全流程。EDAS提供应用托管、配置管理、限流熔断、链路追踪等全生命周期能力,结合拆分检查表,助力企业实现平滑、可控、高效的微服务架构升级,提升系统弹性与业务迭代速度。(238字)
368 0