首页 > 编程语言 >Java中对象的序列化和反序列化方法

Java中对象的序列化和反序列化方法

时间:2023-08-16 16:40:06浏览次数:35  
标签:ObjectOutputStream ObjectInputStream 对象 fileName new Java 序列化


 Java中要序列化一个对象,必须与一定的对象I/O流联系起来,通过对象输出流将对象状态保存下来,再通过对象输入流将对象状态恢复。 
java.io包中,提供了ObjectInputStream和ObjectOutputStream将数据流功能扩展至可读写对象 。

在ObjectInputStream 中用readObject()方法可以直接读取一个对象,

ObjectOutputStream中用writeObject()方法可以直接将对象保存到输出流中。

序列表方法:

public static void serializeToFile(Object o, String fileName) throws FileNotFoundException, IOException  {
         ObjectOutputStream os = new ObjectOutputStream(  
                 new FileOutputStream(fileName));  
         os.writeObject(o);
         os.flush();
         os.close();  
  }

反序列化方法:

public static Object deserializeFromFile(String fileName) throws FileNotFoundException, IOException, ClassNotFoundException  {
   ObjectInputStream is = new ObjectInputStream(new FileInputStream(fileName));
   return is.readObject();
  }

标签:ObjectOutputStream,ObjectInputStream,对象,fileName,new,Java,序列化
From: https://blog.51cto.com/u_7457870/7110028

相关文章

  • 推荐一个面向对象的javascript框架mootools
    MooTools是一个简洁,模块化,面向对象的开源JavaScriptweb应用框架。浏览器支持:支持IE6以上,也支持firefox,safari等与jQuery、Prototype、YUI、Dojo几个更有名的相比,它的优点在:优点:1.灵活,模块化的框架,用户可以选择自己需要的组件。2.MooTools符合OO的思想,使代码更强壮,有力,有效。适合......
  • 机器是否联网的javascript的判断方法介绍
    在很多场景下,只有机器已经联网以后,web应用才能启动。如果没有联网,就会提示错误。、但是机器有时候要重启。如果机器重启后,立刻启动web应用的话,可能,机器上的网络服务还没有准备好。特别是windows7,启动网络服务需要好几秒,这个时候怎么办呢? 之前尝试过几种方法:比如通过ping来判断,......
  • 【校招VIP】java语言考点之List和扩容
    考点介绍:List是最基础的考点,但是很多同学拿不到满分。本专题从两种实现子类的比较,到比较复杂的数组扩容进行分析一、考点题目1、以下关于集合类ArrayList、LinkedList、HashMap描述错误的是:A.HashMap实现Map接口,它允许任何类型的键和值对象,并允许将null用作键或值B.Array......
  • python中自定义类对象json字符串化的方法
    1.用json或者simplejson就可以2.定义转换函数:defconvert_to_builtin_type(obj):print'default(',repr(obj),')'#把MyObj对象转换成dict类型的对象d={}d.update(obj.__dict__)returnd 3.定义类classObject():name=""size=0def__init__(......
  • json 对象格式
    {"allIds":[98,100,105,106,107,101,108,109,110,102,111,112,128,103,113,114,115,116,117,118,119,120,121,122],"ids":[98,100,105,106,107,101,108,109,110,102,111,112,128,103,113,114,115,116,117,118,119,120,121,122],"objTypeList":[......
  • JavaScript – Alpine.js
    前言Alpine是高山的意思。Alpine.js是一个轻量级的JSFramework。我为什么会去用它呢?是这样的,我在做企业网站开发的时候会有2个阶段。第一个draft阶段,只写HTML、CSS、JS。不会涉及ASP.NETCore、SQLServer。第二个阶段就是final,会引入ASP.NETCore、SQLServer......
  • Java中的AOP
    AOP:是面向切面编程SpringAOP的底层是基于动态代理实现的,是在不更改原有类的基础上对目标方法进行增强,所以只有接口才能使用AOP注意:AOP不是Spring独有的,Spring是AOP的核心之一AOP的核心关键词原始对象是target要被增强的方法代理对象是proxy增强后的方法......
  • Java--类加载器
    Java类加载器(ClassLoader)是Java虚拟机(JVM)的一个重要组成部分,负责将Java类从.class文件加载到内存中并进行链接、初始化等操作,使得Java程序能够运行。类加载器的种类及作用BootstrapClassLoader启动类加载器,是JVM的一部分,用来加载Java核心类库,例如rt.jar等.ExtensionClassLoad......
  • Java并发编程:实现高效、线程安全的多线程应用
    Java并发编程是开发高效、可扩展的多线程应用的关键。合理地利用多线程可以提高程序的性能和响应性,但同时也会引入线程安全的问题。本文将介绍Java并发编程的关键技巧,帮助读者实现高效、线程安全的多线程应用。 线程安全的数据结构和类Java提供了许多线程安全的数据结构和类,如Co......
  • java面试题及答案(基础篇)
    如今IT仍是热门行业,面试程序员的人也非常多,那么,怎样才能顺利通过面试呢?2021最新java面试题及答案(基础篇),为你的面试助攻!1、Java中的内存溢出是如何造成的?OutOfMemoryError:(1)PerGernSpace程序中使用了大量jar或class,使Java虚拟机装载类空间不够。解决方案:调参XX:PermSize和XX:MaxP......