import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable; /**
* Java对象序列化和反序列化的工具方法
*/
public class ObjectSerializable implements Serializable {
private static final long serialVersionUID = 1L; /**
* Java对象序列化
*/
public void putData(String filePath, Object data) throws Exception {
// 1. 检查该路径文件是否存在,不存在则创建
File file = new File(filePath);
createFileIfNotExists(file); // 2. 创建输出流,将数据写入文件
ObjectOutputStream out = null;
try {
// 流创建
out = new ObjectOutputStream(new FileOutputStream(file)); // 序列化对象
out.writeObject(data);
} finally {
// 关闭流
if (null != out) {
out.close();
}
}
} // 如果文件不存在,生成一个新文件
public void createFileIfNotExists(File file) throws IOException {
// 如果文件不存在,进行创建
if (!file.exists()) {
// 如果父目录不存在,创建父目录
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
} // 创建一个新的文件
file.createNewFile();
}
} /**
* Java对象反序列化
*/
public Object getData(String filePath) throws Exception {
// 如果文件不存在,抛个异常
File file = new File(filePath);
if (!file.exists()) {
throw new FileNotFoundException(filePath);
} // 创建输入流,从物件中读取数据
ObjectInputStream in = null;
Object object = null;
try {
// 流创建
in = new ObjectInputStream(new FileInputStream(file)); // 对象反序列化
object = in.readObject();
} finally {
// 关闭流
if (null != in) {
in.close();
}
} // 返回反序列化后的对象
return object;
} }

Java对象序列化和反序列化的工具方法的更多相关文章

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

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

  2. Java对象序列化与反序列化一 JSON

    Java对象序列化与反序列化一 JSON 1. 依赖库 jackson-all-1.6.1.jar 2. 代码 public class Student {    private String nam ...

  3. Java 对象序列化和反序列化

         之前的文章中我们介绍过有关字节流字符流的使用,当时我们对于将一个对象输出到流中的操作,使用DataOutputStream流将该对象中的每个属性值逐个输出到流中,读出时相反.在我们看来这种行 ...

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

    对象序列化的目标是将对象保存在磁盘中或者在网络中进行传输.实现的机制是允许将对象转为与平台无关的二进制流. java中对象的序列化机制是将允许对象转为字节序列.这些字节序列可以使Java对象脱离程序存 ...

  5. java对象序列化、反序列化

    平时我们在Java内存中的对象,是无法进行IO操作或者网络通信的,因为在进行IO操作或者网络通信的时候,人家根本不知道内存中的对象是个什么东西,因此必须将对象以某种方式表示出来,即存储对象中的状态.一 ...

  6. Java 对象序列化和反序列化 (实现 Serializable 接口)

    序列化和反序列化的概念 把对象转换为字节序列的过程称为对象的序列化.  把字节序列恢复为对象的过程称为对象的反序列化. 对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存放 ...

  7. JAVA对象序列化和反序列化学习

    JAVA序列化就是将JAVA对象转化为字节序列的过程,而JAVA反序列化就是将字节序列转化为JAVA对象的过程. 这一过程是通过JAVA虚拟机独立完成,所以一个对象序列化后可以在任意时间和任意机器上反 ...

  8. java对象序列化和反序列化,redis存入和获取对象

    最近使用redis发现直接存储序列化后的对象更方便,现提供java序列化和反序列化的代码 1.序列化代码: public static byte[] serialize(Object object) ...

  9. Java 中序列化与反序列化

    一. 序列化和反序列化概念 Serialization(序列化)是一种将对象以一连串的字节描述的过程:反序列化deserialization是一种将这些字节重建成一个对象的过程.将程序中的对象,放入文 ...

随机推荐

  1. 定位bug的方法总结

    把问题聚焦到某一个点上,而不是焦躁的瞎搞,这样效率极低 1,看改动的地方 2,看文档:官方文档或者接口文档. 3,google不到的话,也试试百度中文搜索. 4,看格式反常的地方 5,反思 反常的地方 ...

  2. Asp.Net HttpPostedFile和base64两种上传图片(文件)方式

    之前上传图片基本都是用的HttpPostedFile方式获取图片,这次因为需求关系,要对准备上传的图片进行删除,最后提交的时候才去保存图片到服务器, 找了下资料,html5有个新的东西出来,js 里面 ...

  3. Application-Level层级异常捕获并定位程序的异常位置

    最近遇到一个需求,在设置503错误页面时,如果程序出错,服务器自动发邮件通知所有程序员,方便程序员及时解决问题. 想到好像global.cs文件里面好像有个erro事件,然后找到了Applicatio ...

  4. 【组合数】微信群 @upcexam6016

    时间限制: 1 Sec 内存限制: 128 MB 题目描述 众所周知,一个有着6个人的宿舍可以有7个微信群(^_^,别问我我也不知道为什么),然而事实上这个数字可以更大,因为每3个或者是更多的人都可以 ...

  5. Wordpress上一篇文章和下一篇文章

    <div class="chapter"> <div class="prev"><?php previous_post_link( ...

  6. 终止java线程的2种方法

    1.使用一个volatile的共享变量 2.使用interrupt方法 import java.util.concurrent.TimeUnit; /** * ThreadTest */ public ...

  7. 微软“小冰”识狗与人工神经网络(V)

    实际上.微软早在2014年7月14日首次透露了一项雄心勃勃的研究计划"亚当计划"("Projrct Adam"),该项目是有关计算机视觉方面的研究项目,也就是后 ...

  8. 这些APP开发技巧可少花60万!

    用户需求——我偏不用干嘛要装? 随着手机的普及,大众流量的端口从电脑转移到手机,传统的商业平台从线下到电脑再到手机进行了转换.手机APP作为移动互联网的入口,众多创业者凭借一个手机APP成就了亿万财富 ...

  9. SQL DDL 数据定义语句

    前言 DDL(Data Definition Language)语句:数据定义语句,这些语句定义了不同的数据段.数据库.表.列.索引等数据库对象.常用的语句关键字主要包括 create.drop.al ...

  10. 唯一ID算法之:snowflake(Java版本)

    Twitter开源的算法,简单易用. /** * Twitter_Snowflake<br> * SnowFlake的结构如下(每部分用-分开):<br> * 0 - 0000 ...