- 浏览: 158649 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
wcnmbbbb:
com.lowagie.text 对应的包呢?
根据数据库注释自动生成数据库文档【支持Oracle和Mysql】 -
greatwqs:
序列化算法这篇不错 : http://greatwqs.ite ...
Java IO 中对象的序列化操作 -
litao11046:
为什么使用get的时候要把具体的方法名加入hidden作为隐藏 ...
Struts DispatchAction基本的请求分发
Java IO 中对象的序列化操作
这是一个在IO中比较基础的问题,但是因为很少用到,很容易遗忘,面试的时候可能会遇到,所以记录到博客上,防止忘记
其实代码很简单:主要是用到两个类ObjectInputStream 和ObjectOutputStream 分别实现对类的读取和写入
注意的一点是:要序列化的类应该实现Serialiable接口,其实是一个空的接口,包含写入和读取的测试程序代码
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.util.UUID; public class TestSerialized { /** * 把对象写入文件 * @throws Exception */ public static void WriteObject(Object obj)throws Exception{ FileOutputStream fis = new FileOutputStream(new File("c:\\object.obj")); ObjectOutputStream oos = new ObjectOutputStream(fis); oos.writeObject(obj); oos.close(); } /** * 从文件读取对象 * @return * @throws Exception */ public static Object readObject() throws Exception { FileInputStream fis = new FileInputStream(new File("c:\\object.obj")); ObjectInputStream oos = new ObjectInputStream(fis); return oos.readObject(); } public static void testWrite() throws Exception{ SerializedClass sc = new SerializedClass(); sc.setId(UUID.randomUUID().toString()); sc.setName("zhougege"); WriteObject(sc); System.out.println("写入的对象:"); System.out.println(sc.getId()); System.out.println(sc.getName()); } public static void testRead() throws Exception{ Object obj = readObject(); SerializedClass sc = (SerializedClass)obj; System.out.println("读取到的对象:"); System.out.println(sc.getId()); System.out.println(sc.getName()); } public static void main(String[] args) throws Exception { testWrite(); testRead(); } }
写入对象的核心代码
/** * 把对象写入文件 * @throws Exception */ public static void WriteObject(Object obj)throws Exception{ FileOutputStream fis = new FileOutputStream(new File("c:\\object.obj")); ObjectOutputStream oos = new ObjectOutputStream(fis); oos.writeObject(obj); oos.close(); }
读取对象的核心代码
/** * 从文件读取对象 * @return * @throws Exception */ public static Object readObject() throws Exception { FileInputStream fis = new FileInputStream(new File("c:\\object.obj")); ObjectInputStream oos = new ObjectInputStream(fis); return oos.readObject(); }
发表评论
-
使用Maven构建一个开源项目的代码结构
2017-01-18 12:29 960本文仅适合maven初学者,适合那些像我一样平时不使用mav ... -
Java Des算法实现高速文件加密解密
2016-06-01 15:09 1717import java.io.FileInputStream ... -
Java比较两个数据库中所有表的区别【支持Oracle和SQLServer】
2014-12-09 14:37 5011开发过程中一般是一开发数据库 一生产数据库。 有时候在开发 ... -
根据数据库注释自动生成数据库文档【支持Oracle和Mysql】
2014-11-28 11:02 4161公司项目比较乱,很多时候都是需要先完成项目再准备文档。 数 ... -
根据SVN日志自动生成补丁包[基于Tomcat的JavaEE项目]
2014-11-25 10:08 2402项目开发过程中代码变化很频繁,需要更新文件时,每次都需要手 ... -
用批处理文件为JavaSE项目快速简单的的加载jar包
2014-02-22 10:39 679JavaSE小项目,有时候需要引入很多jar包,但是手动去修 ... -
java中WebService的HelloWorld
2011-11-14 07:24 1687WebService的HelloWorld 首先,在MyEc ... -
Swing中的JOptionPane类
2011-11-14 07:24 1807Swing中的JOptionPane类详解JOptionPan ... -
java输出PDF文档
2011-11-14 07:24 2746PDF输出用到iText包,由于PDF文档的特殊性,有可能需要 ... -
Java生成图片验证码
2011-11-14 07:24 2834Java生成图片验证码部分代码参考自网易博客白云城主的大作制作 ... -
java生成缩略图
2011-11-11 20:12 1090公司一些项目中经常把用户上传的原图用IMG标签改变尺寸后直接在 ... -
java读取和输出Excel
2011-11-11 20:11 1301Excel读取和输入要用到JXL包 输出Excel的代码示例 ... -
ApacheClient模拟浏览器GET和POST请求
2011-11-11 20:04 2115ApacheClient简介HttpClient ... -
ireport和jasperReport生成统计报表的helloworld
2010-08-04 22:51 2705本文只涉及到简单的动态数据传递 首先使用ireport创建模 ... -
使用Java 发送电子邮件
2010-08-04 22:33 1771一个采用sun的类库的java发送邮件的demo 因为使用的 ... -
Java的远程方法调用 RMI 的 HelloWorld 程序
2010-07-29 16:11 1896本文大部分内容来自 http://www.jspcn.net/ ... -
设计模式 之 工厂模式
2010-07-28 21:45 1615常用设计模式之 工厂模 ... -
设计模式 之 单例模式
2010-07-28 21:44 1564单例模式:设计中有时候需要使某个对象在整个系统中只存在一个 ... -
使用递归和dom遍历dom树形结构
2010-07-28 21:39 2609使用递归逆推出xml文件的大体结构 package com. ... -
使用jdom解析xml文件
2010-07-28 21:38 1612使用jdom解析xml package com.dowebb ...
相关推荐
Java对象的序列化和反序列化是Java编程中一项重要的技术,主要用于将对象的状态转换为字节流,以便存储或在网络上传输。这一过程对于理解Java的IO操作、持久化数据以及实现分布式通信等场景非常关键。 首先,我们来...
Java对象序列化与反序列化是Java编程中重要的概念,主要应用于数据持久化、网络传输以及存储等场景。本文将详细解析这两个概念及其在实际应用中的实现方式。 **一、Java对象序列化** 1. **定义**: Java对象序列化...
在本文中,我们将深入探讨关于Java对象序列化你可能不知道的五件事情,这些知识点对于理解和优化你的Java应用程序至关重要。 1. **序列化的意义与用途** Java对象序列化不仅用于持久化对象状态,还能在网络传输中...
Java对象序列化是一种将对象转换为字节流的过程,以便可以将其存储在磁盘上,或者在网络中进行传输。这是Java平台提供的一种功能,允许程序员将任何Java对象持久化,即将其状态保存到磁盘,或者在网络中进行传输。...
#### 六、序列化中的注意事项 - **`transient` 关键字**:使用 `transient` 可以排除某些字段不被序列化。 - **版本兼容性**:序列化的类应该定义一个 `serialVersionUID` 来确保版本兼容性。 - **私有构造函数**:...
在Java编程中,对象序列化是一种将对象的状态转换为字节流的过程,以便可以存储或在网络上传输。而在反序列化时,这个字节流又可以恢复为原来的对象。Java提供了一个方便的机制来实现这一点,即`java.io....
而在Java中,我们可以通过实现`Serializable`接口来使类支持序列化,或者使用`java.io.ObjectOutputStream`和`java.io.ObjectInputStream`进行对象的序列化和反序列化。 接下来,我们讨论反序列化。反序列化是序列...
本篇将深入探讨如何通过Socket传递Java对象,重点讲解对象序列化的过程。 首先,让我们理解什么是Socket。Socket在计算机网络中是一种进程间通信机制,它允许两个网络应用程序之间建立连接并交换数据。在Java中,`...
1. **对象序列化的基本用法**:如何在类中声明`Serializable`接口,以及如何使用`ObjectOutputStream`和`ObjectInputStream`进行序列化和反序列化操作。 2. **序列化与持久化**:讨论了如何通过序列化将对象的状态...
前者代表对象输出流,具备`writeObject(Object obj)`方法,可以将对象序列化并写入到目标输出流;后者代表对象输入流,其`readObject()`方法能从输入流中读取字节流并反序列化为对象。 为了使一个Java对象能够被...
Java中的对象序列化是一种将Java对象转换为字节流的过程,以便可以持久存储或在网络上传输。这在处理跨进程通信、远程方法调用(RMI)、数据存储以及需要对象状态持久化的场景中非常有用。要实现Java对象的序列化,...
序列化的过程就是对象写入字节流和从字节流中读取对象。将对象状态转换成字节流之后,可以用java.io包中的各种字节流类将其...对象序列化问题在网络编程中并不是最激动人心的课题,但却相当重要,具有许多实用意义。
在Java中,实现对象序列化主要依靠实现`java.io.Serializable`接口。本文将深入探讨Java对象序列化的原理、用途和注意事项。 **一、序列化原理** 1. **实现Serializable接口**: 对象要能够被序列化,它所在的类...
在Java编程语言中,对象的序列化和反序列化是两个关键的概念,它们对于数据存储、网络传输以及持久化有着重要的作用。这篇文章将深入探讨这两个主题,并通过实践例子来阐述其工作原理。 **序列化(Serialization)*...
通过学习IO流与序列化,开发者能够更好地理解Java中数据的读写和对象状态的保存,这对于开发涉及文件操作、网络通信和持久化存储的程序至关重要。同时,熟悉这些技术也有助于提升代码的可维护性和性能。
Java中的序列化主要通过实现`java.io.Serializable`接口来完成。虽然这个接口没有任何方法,但是它的存在就表明该类的对象可以被序列化。当一个对象被序列化时,其所有字段(包括私有的)都会被包含在字节流中,除非...
一、Java对象序列化与反序列化 1. **序列化**: 序列化是将Java对象转换为字节流的过程,以便于存储或传输。通过实现`java.io.Serializable`接口,一个Java对象可以获得序列化的能力。序列化不仅可以保存对象的状态...
Java中的序列化与反序列化是Java编程语言中用于处理对象状态持久化和网络传输的重要技术。序列化是指将一个Java对象转换为字节流的过程,这样就可以将对象的状态保存到磁盘上或者通过网络传输。反序列化则是将字节流...