Java对象的序列化和反序列化
2024-08-29 12:58:46
对象的序列化是指将对象转换为字节序列的过程
对象的反序列化是指将字节序列恢复对象的过程
主要有两种用途:
1、把对象的字节序列永久地保存在硬盘上,通常放在一个文件中。
2、在网络上传输对象的字节序列。
Person类
package com.zyz; import java.io.Serializable; /**
* Created by Administrator on 16-9-25.
*/
public class Person implements Serializable {
private String name;
private int age;
private String sex; 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 String getSex() {
return sex;
} public void setSex(String sex) {
this.sex = sex;
}
}
测试类
package com.zyz; import java.io.*;
import java.text.MessageFormat; /**
* Created by Administrator on 16-9-25.
*/
public class TestObjSerializeAndDeserialize {
public static void main(String[] args){
// try {
// SerializePerson();
// } catch (IOException e) {
// e.printStackTrace();
// }
try {
SerializePerson();
Person person=DeserializPerson();
System.out.println(MessageFormat.format("姓名:{0},年龄:{1},性别:{2}",person.getName(),person.getAge(),person.getSex()));
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
} private static void SerializePerson() throws IOException {
Person person=new Person();
person.setName("乔大爷");
person.setAge(40);
person.setSex("男");
ObjectOutputStream oo=new ObjectOutputStream(new FileOutputStream(new File("d:/person.txt")));
oo.writeObject(person);
System.out.println("文件序列化成功!");
oo.close();
} private static Person DeserializPerson() throws IOException, ClassNotFoundException {
ObjectInputStream ois=new ObjectInputStream(new FileInputStream(new File("d:/person.txt")));
Person person=(Person)ois.readObject();
System.out.println("Person对象反序列化成功!");
return person;
} }
最新文章
- 未能写入输出文件“c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\web\4b49f661\23a749fc\App_Web_default.aspx.cdcab7d2.zii776dc.dll”--“拒绝访问。 ” 解决方法:
- Java基础知识笔记(三:文件与数据流)
- XE3随笔12:TSuperTableString、TSuperAvlEntry
- HDU 5017 Ellipsoid 模拟退火第一题
- two sum - leetcode
- YUI3 CSS
- uboot命令分析+实现【转】
- Linux学习笔记总结--配置iptables防火墙
- 七牛云- Java 端 使用
- 母函数&;&;排列(模板)
- 使用C#代码追加和提交文件到SVN服务器
- python自学笔记(八)python语句
- 2018-2019-2-20175235 实验一 《Java开发环境的熟悉》实验报告
- 轻松测试 logstash 的配置文件
- 【mongoDB查询进阶】聚合管道(二) -- 阶段操作符
- LOJ #2234. 「JLOI2014」聪明的燕姿(搜索 + 数论)
- springBoot----aop--整合日志相关
- JS window与document
- java比较两个对象是否相等?
- 在 ServiceModel 客户端配置部分中,找不到引用协定“IpsBarcode.ScanService”的默认终结点元素。这可能是因为未找到应用程序的配置文件,或者是因为客户端元素中找不到与此协定匹配的终结点元素。