(1) 首先是java自己内部实现的对象序列化机制 其实就是ObjectInputStream 和 ObjectOutputStream

首先实现一个实体对象  记住必须实现Serializable 接口

package com.rpc;

import java.io.Serializable;

public class Student implements Serializable{

	private static final long serialVersionUID = 5915058853403173212L;

	private String id;
private String name;
private String sex;
private int age; public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
} }

然后是将对象以文件的形式保存

package com.rpc;

import java.io.File;
import java.io.FileOutputStream;
import java.io.ObjectOutputStream; public class ObjectChuanshu { public static void main(String[] args) {
Student student = new Student();
student.setAge(23);
student.setId("123");
student.setName("张三");
student.setSex("男"); FileOutputStream fout = null;
ObjectOutputStream oos = null;
try{
fout = new FileOutputStream(new File("d:/1.object"));
oos = new ObjectOutputStream(fout);
oos.writeObject(student);
oos.flush();
fout.flush();
}catch(Exception e){
System.out.println(e.getMessage());
e.printStackTrace();
}finally{
try{
oos.close();
fout.close();
}catch(Exception e){} }
}
}

然后是从文件中读出对象

package com.rpc;

import java.io.File;
import java.io.FileInputStream;
import java.io.ObjectInputStream; public class ReadObject { public static void main(String[] args) { FileInputStream fin = null;
ObjectInputStream ois = null; try{
fin = new FileInputStream(new File("d:/1.object"));
ois = new ObjectInputStream(fin);
Student student = (Student)ois.readObject();
System.out.println(student.getName());
}catch(Exception e){
System.out.println(e.getMessage());
e.printStackTrace();
}finally{
try{
fin.close();
ois.close();
}catch(Exception e){}
} }
}

输出结果

张三

Hessian 的对象 序列化  需要添加 hessian.jar

package com.rpc;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream; import com.caucho.hessian.io.Hessian2Input;
import com.caucho.hessian.io.Hessian2Output; public class HessianObject { private String filePath; public HessianObject(String filePath){
this.filePath = filePath;
}
/**
* 将对象保存到指定的文件中
* @param filePath
* @throws Exception
*/
public byte[] writeObject(Student student) throws Exception{ Hessian2Output hout = null;
ByteArrayOutputStream baos = null;
try{
baos = new ByteArrayOutputStream();
hout = new Hessian2Output(baos);
hout.writeObject(student);
hout.flush();
}catch(Exception e){
throw e;
}finally{
}
return baos.toByteArray();
} /**
* 读取文件中的对象
* @param filePath
* @throws Exception
*/
public Student readObject(byte[] buffer)throws Exception{ Hessian2Input hin = null;
Student student = null;
ByteArrayInputStream bais = null;
try{
bais = new ByteArrayInputStream(buffer);
hin = new Hessian2Input(bais);
student = (Student)hin.readObject();
}catch(Exception e){
throw e;
}finally{
}
return student;
} public static void main(String[] args) { HessianObject hessianObject = new HessianObject("d:/2.object");
Student student = new Student();
student.setAge(18);
student.setId("12345");
student.setName("李四");
student.setSex("女");
try{
byte[] buffer = hessianObject.writeObject(student);
Student s = hessianObject.readObject(buffer);
System.out.println(s.getName());
}catch(Exception e){
System.out.println(e.getMessage());
e.printStackTrace();
}
}
}

输出结果

李四

java 的序列化的更多相关文章

  1. Java对象序列化剖析

    对象序列化的目的 1)希望将Java对象持久化在文件中 2)将Java对象用于网络传输 实现方式 如果希望一个类的对象可以被序列化/反序列化,那该类必须实现java.io.Serializable接口 ...

  2. JAVA的序列化和持久化的区别与联系

      持久化(Persistence) 即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘).持久化的主要应用是将内存中的对象存储在关系型的数据库中,当然也可以存储在磁盘文件中.XML数据文 ...

  3. 理解Java对象序列化

    http://www.blogjava.net/jiangshachina/archive/2012/02/13/369898.html 1. 什么是Java对象序列化 Java平台允许我们在内存中创 ...

  4. java 对象序列化与反序列化

    Java序列化与反序列化是什么? 为什么需要序列化与反序列化? 如何实现Java序列化与反序列化? 本文围绕这些问题进行了探讨. 1.Java序列化与反序列化  Java序列化是指把Java对象转换为 ...

  5. Java的序列化ID的作用

    Java的序列化ID的作用 简单来说,Java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的.在进行反序列化时,JVM会把传来的字节流中的serialVersio ...

  6. Java基础-序列化

    Java序列化是将一个对象编码成一个字节流,反序列化将字节流编码转换成一个对象. 序列化是Java中实现持久化存储的一种方法: 为数据传输提供了线路级对象表示法. Java的序列化机制是通过在运行时判 ...

  7. java 对象序列化

    java 对象序列化 package org.rui.io.serializable; import java.io.ByteArrayInputStream; import java.io.Byte ...

  8. 理解Java对象序列化(二)

    关于Java序列化的文章早已是汗牛充栋了,本文是对我个人过往学习,理解及应用Java序列化的一个总结.此文内容涉及Java序列化的基本原理,以及多种方法对序列化形式进行定制.在撰写本文时,既参考了Th ...

  9. 关于 Java 对象序列化您不知道的 5 件事

    数年前,当和一个软件团队一起用 Java 语言编写一个应用程序时,我体会到比一般程序员多知道一点关于 Java 对象序列化的知识所带来的好处. 关于本系列 您觉得自己懂 Java 编程?事实上,大多数 ...

  10. 深入分析Java的序列化与反序列化

    序列化是一种对象持久化的手段.普遍应用在网络传输.RMI等场景中.本文通过分析ArrayList的序列化来介绍Java序列化的相关内容.主要涉及到以下几个问题: 怎么实现Java的序列化 为什么实现了 ...

随机推荐

  1. 基于Jquery 简单实用的弹出提示框

    基于Jquery 简单实用的弹出提示框 引言: 原生的 alert 样子看起来很粗暴,网上也有一大堆相关的插件,但是基本上都是大而全,仅仅几句话可以实现的东西,可能要引入好几十k的文件,所以话了点时间 ...

  2. Ant 随想

    Ant是一种基于Java的build工具 面向任务构建,属性与于shell脚本中命令功能类型. <?xml version="1.0"?> <project na ...

  3. 一键部署mono 免费空间

    一键部署mono 免费空间支持c# 再也不担心伙食费换空间了 一直以来 部署mono 都是很头疼的事情 因为是我在是不熟悉非win环境,今天偶然发现这个项目,挺好的,分享下 https://githu ...

  4. .NET平台技术体系

    .NET平台技术体系梳理+初学者学习路径推荐+我们的愿景与目标 一 .NET平台技术体系梳理 .NET平台应用领域众多(桌面开发,web开发,移动开发),不断有新的编程爱好者开始学习或从其他平台转移到 ...

  5. IT团队管理

    如果在IT项目实施中选出最难解决的几个问题,那么管理问题一定名列前茅.在管理问题中,团队管理又是其中的难点.一个项目管理的 好坏,很大程度就体现在团队的建设和管理上.团队管理涉及到管理学.心理学和哲学 ...

  6. c# 控制职能运行单一实例,再次运行显示已经运行的实例

    有这么个需求,软件只能运行一个实例,软件运行后可以让其隐藏运行 再次运行这个软件的时候就让正在运行的实例显示出来 ================================= 当软件隐藏后没办法 ...

  7. ASP.NET Session丢失问题原因及解决方案

    正常操作情况下会有ASP.NET Session丢失的情况出现.因为程序是在不停的被操作,排除Session超时的可能.另外,Session超时时间被设定成60分钟,不会这么快就超时的. ASP.NE ...

  8. 使用PetaPoco结合注入实现业务级事务

    使用PetaPoco结合注入实现业务级事务   PetaPoco是一个轻量级ORM,我的MVC项目中使用它结合Repository模式,依靠Unity的生命周期管理对象,保证请求/线程级别的数据上下文 ...

  9. ASP.NET MVC页面UI之多级数据选择UI(行业信息、专业信息、职位信息的选择)

    多级数据选择操作在开发中是常见的操作,比如选择行业信息时,一般有个大类,每个大类下边又包含很多小类,本文简单实现了弹出窗口一级一级选择功能. 本文博客出处:http://www.kwstu.com/A ...

  10. SQL Server中的高可用性1

    SQL Server中的高可用性(1)----高可用性概览   自从SQL Server 2005以来,微软已经提供了多种高可用性技术来减少宕机时间和增加对业务数据的保护,而随着SQL Server ...