深入理解Java序列化与反序列化

网友投稿 255 2022-10-24


深入理解Java序列化与反序列化

一、前言

序列化:将对象转换为二进制序列在网络中传输或保存到磁盘

反序列化:从网络或磁盘中将二进制序列转换为对象

注意:

对象必须实现Serializable接口

对象的所有属性都要能序列化(Integer,Byte等都进行了序列化)

1.1 String

1.2 Integer

二、案例

2.1 编写大象类

public class Elephant implements Serializable {

private String name;

private String age;

private String sex;

public Elephant(String name, String age, String sex) {

this.name = name;

this.age = age;

this.sex = sex;

}

@Override

public String toSthttp://ring() {

return "Elephant{" +

"name='" + name + '\'' +

", age='" + age + '\'' +

", sex='" + sex + '\'' +

'}';

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getAge() {

return age;

}

public void setAge(String age) {

this.age = age;

}

public String getSex() {

return sex;

}

public void setSex(String sex) {

this.sex = sex;

}

}

2.2 大象测试类

public class ElephantTest {

public static final String PATH = "D:\\elephant";

static void write(Elephant elephant){

//创建对象输出流

try( ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(PATH))) {

//写入对象

out.writeObject(elephant);

} catch (IOException e) {

e.printStackTrace();

}

}

static Object read(){

//创建对象输出流

try( ObjectInputStream in = new ObjectInputStream(new FileInputStream(PATH))) {

//写入对象

return in.readObject();

} catch (Exception e) {

e.printStackTrace();

}

return null;

}

public static void main(String[] args) {

Elephant elephant7 = new Elephant("小红象", "18", "男");

writeRswjR(elephant7);

Elephant elephant1 = (Elephant) read();

System.out.println(elephant1);

System.out.println(elephant7);

System.out.println(eRswjRlephant1==elephant7);

}

}

三、运行结果

写入D盘的对象:


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:夏杰-系统集成/网络工程/售前工程师 系列课程福利大发送!爆品3折+购课送课,多重优惠!
下一篇:说服技术性管理者的方法
相关文章

 发表评论

评论列表