本文实例讲述了java对象序列化操作。分享给大家供大家参考,具体如下:
在java中可以将对象进行序列化操作
要使对象能够被序列化,那么被序列化的对象要实现接口Serializable,此接口位于java.io包中
pakacge demo; import java.io.Serializable; /** * 实现了Serializable 接口的demo类 */ public class Demo1 implements Serializable { private String name; private String sex; private int age; public Demo1() { } public Demo1(String name,String sex,int age) { this.setName(name); this.setSex(sex); this.setAge(age); } public void setName(String name) { this.name = name; } public String getName() { return this.name; } public void setSex(String sex) { this.sex = sex; } public String getSex() { return this.sex; } public void setAge(int age) { this.age = age; } public int getAge() { return this.age; } }
序列化对象案例程序,网上的教程是将序列化的对象输出到文件,但一般我们是将序列化的对象存储在字符串中,并转存到数据库中。所以这里我用ByteArrayOutputStream 对象替代文件输出对象
import demo.Demo1; import java.io.*; public class Index { public static void main(String[] agrs) { test1(); } public static void test1() { Demo1 demo1 = new Demo1("谭勇","男",23); try{ //实例化一个ByteArray 对象 ByteArrayOutputStream byteOut = new ByteArrayOutputStream(); //实例化对象序列化输入流,并设置序列化后的对象输出到byteOut对象 ObjectOutputStream objOutputStream = new ObjectOutputStream(byteOut); //将对象写入到byteOut 对象中 objOutputStream.writeObject(demo1); //序列化后的对象转String 存储 String strObj = byteOut.toString("ISO-8859-1"); //关闭流 objOutputStream.close(); byteOut.close(); /***************将序列化字符串转对象******************/ //实例一个序列化对象输入流 ByteArrayInputStream byteInputStream = new ByteArrayInputStream(strObj.getBytes("ISO-8859-1")); //序列化对象输入流 ObjectInputStream objInput = new ObjectInputStream(byteInputStream); //将序列化对象转对象 Demo1 demo1_ser = (Demo1)objInput.readObject(); //关闭流 objInput.close(); byteInputStream.close(); System.out.println(demo1_ser.getName()); System.out.println(strObj); }catch(IOException e){ System.out.println(e.getMessage()); }catch(ClassNotFoundException e){ System.out.println(e.getMessage()); } } }
运行结果:
更多java相关内容感兴趣的读者可查看本站专题:《Java面向对象程序设计入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。
本文向大家介绍PHP常见的序列化与反序列化操作实例分析,包括了PHP常见的序列化与反序列化操作实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP常见的序列化与反序列化操作。分享给大家供大家参考,具体如下: 1.概念 serialize() 把变量和它们的值编码成文本形式 unserialize() 恢复原先变量 2.序列化例子 输入输出 array(5) { ["name"]
本文向大家介绍JAVA操作XML实例分析,包括了JAVA操作XML实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JAVA操作XML的方法。分享给大家供大家参考。具体如下: java代码如下: XML文件如下: 希望本文所述对大家的java程序设计有所帮助。
本文向大家介绍jquery分页优化操作实例分析,包括了jquery分页优化操作实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jquery分页优化操作。分享给大家供大家参考,具体如下: 前言 上次写了博客 jquery分页显示,文章的jquery分页方式虽然可以通过js实现分页,但是也存在明显的弊端。 该篇文章的思路是,每次通过ajax请求获取到记录,然后通过判断当前页面,显示或者
本文向大家介绍java对象的序列化和反序列化,包括了java对象的序列化和反序列化的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了java对象的序列化和反序列化,供大家参考,具体内容如下 1. 什么是序列化 将对象转换为字节流保存起来,比如保存到文件里,并在以后还原这个对象,这种机制叫做对象序列化。(补充一句:把对象保存到永久存储设备上称为持久化) 2. 怎么实现序列化
本文向大家介绍ES6对象操作实例详解,包括了ES6对象操作实例详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了ES6对象操作。分享给大家供大家参考,具体如下: 1.对象赋值 es5中的对象赋值方式如下: 结果为: ES6允许把声明的变量直接赋值给对象,例如: 结果与上述相同。 2.对象Key值构建 有时候我们会在后台取出key值,而不是我们前台定义好的,这时候我们可以我们可以把后台定
本文向大家介绍Python全排列操作实例分析,包括了Python全排列操作实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python全排列操作。分享给大家供大家参考,具体如下: step 1: 列表的全排列: 这个版本比较low 调用: 运行结果: [1, 2, 3, 4] [1, 2, 4, 3] [1, 3, 2, 4] [1, 3, 4, 2] [1, 4, 3, 2] [