news 2026/4/18 3:29:27

java基础-IO流(序列化流和反序列流)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
java基础-IO流(序列化流和反序列流)

序列化流/对象操作输出流:可以把JAVA中的对象写到本地文件中

使用对象输出流将对象保存到文件的时候,会出现NotSerializableException异常

解决方案:让JAVAbean类实现Serializable接口

1、Serializable接口里面没有抽象方法,是一个标记接口 2、一旦实现了这个接口,就表示当前的这个Student类可以被序列化

反序列号流:

序列化流和反序列化流,

细节一:如果使用反序列化流在解析数据的时候,JAVAbean类是不能修改的,一旦修改就会导致两边的标识不一样。

解决方法如下:

方案一:

在javabean类中写死

方案二:设置IDEA

设置IDEA之后,如果不记得写,IDEA会有一个深色背景在类名的背后,你可以自己写一个

也可以alt+回车,IDEA会提示你写

细节二:

如果javabean中有一些属性,你不想序列化,比如student类中,有name,age,address,你不想序列化address,这个时候可以添加关键字

transient:瞬态关键字

需求:将多个自定义对象序列化到文件中,但是对象的个数不确定,该如何操作的?

package Day11_IO; import java.io.*; import java.util.ArrayList; public class IOTest02 { public static void main(String[] args) throws IOException, ClassNotFoundException { //利用集合存储对象,可以实现批量序列化和反序列化 Animals a1 = new Animals("哈士奇",10); Animals a2 = new Animals("波斯猫",11); Animals a3 = new Animals("米老鼠",12); Animals[] arr =new Animals[3]; ArrayList<Animals> list = new ArrayList<Animals>(); list.add(a1); list.add(a2); list.add(a3); //序列号写入 ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("E:\\file\\test1.txt")); oos.writeObject(list); oos.close(); //序列号读取 ObjectInputStream ois = new ObjectInputStream(new FileInputStream("E:\\file\\test1.txt")); ArrayList<Animals> list1=(ArrayList<Animals>) ois.readObject(); for (Animals animals : list1) { System.out.println(animals); } ois.close(); } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 14:44:37

爆肝!三大巨头揭秘:AI Agent如何重构编程世界,小白也能月入10W?

“每个人每天使用最高频的三个APP中有两个是Agent时&#xff0c;才意味着AI Agent进入新发展阶段。” “一个好Agent的衡量指标&#xff0c;包括可控性、可解释性以及持续稳定执行任务的能力。” “多数Agent存在负毛利问题&#xff0c;完成任务的代价高于用户支付意愿&#…

作者头像 李华
网站建设 2026/4/13 21:46:27

【我的2025:笔下的仗打完了,心里的火还没灭】

【我的2025&#xff1a;笔下的仗打完了&#xff0c;心里的火还没灭】 各位&#xff0c;年底了&#xff0c;汇报一下。 我不是在写总结&#xff0c;我是在清理战场。过去这一年&#xff0c;我用键盘打了好几场硬仗&#xff0c;对手挺杂的&#xff1a;有满天神佛&#xff0c;有…

作者头像 李华
网站建设 2026/4/7 13:29:17

LLM推理加速方法-2025年终总结,非常详细收藏我这一篇就够了

模型分为prefill和decoding两个阶段&#xff0c;因为特性不同&#xff0c;因此加速方式不同。prefill的加速方式主要是少算、而decoding的加速方式主要是少传输。 推理优化的方式主要有如下几种方式&#xff1a; 1、减少token输入&#xff08;少算&#xff09;。 2、量化&#…

作者头像 李华