恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

Java-实例-序列化与反序列化(Serializable)

  • 首页
  • 资讯中心
  • /
  • Java-实例-序列化与反序列化(Serializable)

相关资讯

Word页眉页脚批量修改全攻略:从模板应用到VBA自动化实战 2026/8/14 23:21:17
CK9561怎么接线? 2026/8/14 23:21:17
大功率IGBT串联动态均压驱动方案:从原理到工程实践 2026/8/14 23:16:16

最新资讯

Windows系统文件sstpcfg.dll丢失找不到问题解决
打造冶金产业展示交易平台 致力推进技术创新品质提升——兰州有色金属与加工技术设备
TMC2209步进电机驱动模块:静音高效,从硬件连接到软件配置全解析
AI开发工具Claude Code接入配置与API连接问题全解析
Windows系统文件SSShim.dll丢失找不到问题解决
从GPT-5.6 Sol的Ultrafast模式看推理速度竞赛:750 token/秒背后,Cerebras的晶圆级生意

今日推荐

内景 空间站内部 中国空间站 太空 内仓
重新定义数据接口:3个突破性场景让通达信数据读取更智能
5大网络安全实操平台,免费练手入门,轻松掌握攻防技能

本周热门

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁
如何快速生成中国车牌图片:Python开源工具完整指南
当 LLM 遇见大文档:主流开源项目如何处理上下文超限

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

Java-实例-序列化与反序列化(Serializable)

发布时间:2026/8/14 23:21:17
Java-实例-序列化与反序列化(Serializable) 理解Serializable序列化---将对象状态转换为字节流以便存储或传输。序列化是冻结对象反序列化是解冻对象想让一个对象可序列化其类必须实现java.io.Serializable接口。这个接口没有任何方法只起标记作用告诉JVM这个类的对象允许被序列化。在Android中进行序列化主要有两种选择Java原生的Serializable和Android专属的Parcelable。它们最核心的区别在于设计初衷和应用场景Serializable是Java的标准接口使用简单但效率较低适合持久化存储存文件或网络传输-2-8-11。Parcelable是Android特有的接口实现稍复杂但性能极高专为内存间的高效数据传输而设计是Android组件间通信如Intent、Binder跨进程通信的首选实例将对象person转换为字节流存储在工程target文件夹中。调用Person person new Person(九股烟, 20); byte[] bytes0 serialize(person); // 序列化将对象保存到文件 save(bytes0); //保存 byte[] bytes1 read(); //读出 Person p deserialize(bytes1); // 反序列化从文件恢复对象 System.out.println(反序列化对象 p.toString());功能函数// // 1. 序列化对象 → 字节数组 // public static byte[] serialize(Person person) { try ( ByteArrayOutputStream baos new ByteArrayOutputStream(); ObjectOutputStream oos new ObjectOutputStream(baos)) { oos.writeObject(person); oos.flush(); return baos.toByteArray(); } catch (IOException e) { e.printStackTrace(); return null; } } // // 2. 反序列化字节数组 → 对象 // public static Person deserialize(byte[] bytes) { if (bytes null || bytes.length 0) {return null;} try (ByteArrayInputStream bais new ByteArrayInputStream(bytes); ObjectInputStream ois new ObjectInputStream(bais)) { return (Person) ois.readObject(); } catch (IOException | ClassNotFoundException e) { e.printStackTrace(); return null; } } String targetDir target/; String fileName path_bytes.km; // // 3. 保存字节数组 → 文件 // public void save(byte[] data) { try { // 确保target目录存在 File file new File(targetDir, fileName); file.getParentFile().mkdirs();// 确保target目录存在 try (FileOutputStream fos new FileOutputStream(file)) { fos.write(data); System.out.println(保存成功: file.getAbsolutePath()); System.out.println(数据大小: data.length 字节); } } catch (IOException e) { e.printStackTrace(); } } // // 4. 读取文件 → 字节数组 // public byte[] read() { File file new File(targetDir, fileName); file.getParentFile().mkdirs();// 确保target目录存在 if (!file.exists()) {return null;} try (FileInputStream fis new FileInputStream(file)) { byte[] data new byte[(int) file.length()]; fis.read(data); System.out.println(读取成功: file.getAbsolutePath()); System.out.println(数据大小: data.length 字节); return data; } catch (IOException e) { e.printStackTrace(); return null; } }Person.java 接口Serializableimport java.io.Serializable; public class Person implements Serializable{ private String name; private int age; public Person(String name, int age) { this.name name; this.age age; } public String getName() { return name; } public void setName(String name) { this.name name; } public int getAge() { return age; } public void setAge(int age) { this.age age; } Override public String toString() { return Person{ name name \ , age age }; } }

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号