栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > Java面试题

描述一下Java序列化和反序列化的步骤。

Java面试题 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

描述一下Java序列化和反序列化的步骤。

Java中序列化的步骤:

1.创建一个对象输出流,它可以包装一个其他类型的目标输出流,如文件输出流:

  • ObjectOutputStream out = new ObjectOutputStream(new fileOutputStream(“D:\objectfile.obj”));

2.通过对象输出流的writeObject()方法写对象,如:

  • Out.writeObject(“hello”);
  • Out.writeObject(new Date());

Java中反序列化的步骤:

1.创建一个对象输入流,它可以包装一个其他类型的源输入流,如文件输入流:

  • ObjectInputStream in = new ObjectInputStream (new fileIutputStream(“D:\objectfile.obj”));

2.通过对象输入流的readObject()方法读取对象,如:

  • String obj1=(String)in.readObject();
  • Date obj2=(Date)in.readObject();
  • 为了能正确读取数据,必须保证向对象输出流写对象的顺序与从对象输入流读对象的顺序一致

//序列化对象

import java.io.*;import java.util.*;

public class ObjectSaver{

public static void main(String agrs[]) throws Exception {
ObjectOutputStream out=new ObjectOutputStream(new FileOutputStream(“D:\objectFile.obj”));
String obj1=”hello”;
Date obj2=new Date();
Customer obj3=new Customer(“Tom”,20);
//序列化对象
out.writeObject(obj1);
out.writeObject(obj2);
out.writeObject(obj3);
out.writeInt(123);
out.close();

//反序列化对象
ObjectInputStream in=new ObjectInputStream(new FileInputStream(“D:\objectFile.obj”));
String obj11 = (String)in.readObject();
System.out.println(“obj11:”+obj11);
System.out.println(“obj11==obj1:”+(obj11==obj1));

Date obj22 = (Date)in.readObject();
System.out.println(“obj22:”+obj22);
System.out.println(“obj22==obj2:”+(obj22==obj2));

Customer obj33 = (Customer)in.readObject();
System.out.println(“obj33:”+obj33);
System.out.println(“obj33==obj3:”+(obj33==obj3));
int var= in.readInt();
System.out.println(“var:”+var);
in.close();

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/263643.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号