I//O实操之对象流(序列化与反序列化)
1、为甚么需要对象流?
在数据传输时,我们之前的操作是以文件的内容值进行读写操作。然而我们经常在前后端做数据传输时往往是以对象体进行传输,也就是说如何以一个自定义构建的对象进行数据传输。因此我们在这里需要用到对象流。
2、为什么会需要进行序列化?
有一种说法是:我们构建一个对象是以16进制来构建一个对象,计算机是以二进制来读写数据,如果我们直接使用对象进行传输,就会发生计算机无法正确读取数据,那么在传输过程中可能会出现错误。因此我们需要先将对象序列化,将然后在传输的另一端反序列化重构这个对象。这个过程可以理解为分解与重组。
3、实例
首先我们对象传输需要先构建一个对象。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | import java.io.Serializable; //实现序列化接口 的对象才能写出去 public class Person implements Serializable { //自定义(显示定义)序列号 //防止对象序列化以后,类的结构更改了 不能反序列化 public static final long serialVersionUID=342343423l; private static String name; //静态变量不会被序列化 public transient int age; //加上transient关键字的属性也不会被序列化 transient 瞬态 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; } public Person() {} public Person(String name, int age) { this .name=name; this .age=age; } public String toString() { return "Person[name=" + this .name+ ",age=" + this .age+ "]" ; } } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)