- 浏览: 3117536 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (372)
- diy (4)
- linux (19)
- 杂项 (30)
- Swing (21)
- Java2D (21)
- Java3D (5)
- JavaIO (9)
- Java通讯 (5)
- Java设计模式 (3)
- Java多媒体 (0)
- Java算法 (7)
- Spring&EJB (29)
- Javaoffice (4)
- web前端 (23)
- javascript (1)
- php基础 (1)
- eclipse (3)
- 网站相关 (3)
- Apache (4)
- seo (12)
- db (28)
- server (3)
- api (4)
- 异常 (12)
- 计算机网络词汇表 (3)
- 随想录 (52)
- 收藏 (17)
- 犹太人的智慧 (3)
- 多线程 (1)
- jfreechart (7)
- Test (1)
- SorLib (30)
- ruby on rails (1)
最新评论
-
houyutao:
二三四都是错的空字符串也被匹配,*应该改成+
Java中判断字符串是否为数字的五种方法 -
mingyun:
但是 java.util.ArrayList 实现了 remo ...
java.lang.UnsupportedOperationException 解决方案 -
mingyun:
1.因为 Arrays.asList 返回的是 Arrays内 ...
java.lang.UnsupportedOperationException 解决方案 -
leolu007:
用java8新特性String testStr = " ...
java.lang.UnsupportedOperationException 解决方案 -
zhaohuaxishiwzw:
我之前所在的项目就是日本一家证券公司的项目。完全使用的是j2e ...
抛弃EJB(EJB2.0,EJB3.0,EJB4.0)
关键词: 序列化,反序列化,例子
序列化简单说就是为了保存在内存中的各种对象的状态(也就是实例变量,不是方法),虽然你可以用你自己的各种各样的方法来保 存object states,但是Java给你提供一种应该比你自己好的保存对象状态的机制,那就是序列化。
反序列化正好相反,就是将保存的对象读出来,实例为对象。
下面是一个完整而形象的例子:
序列化简单说就是为了保存在内存中的各种对象的状态(也就是实例变量,不是方法),虽然你可以用你自己的各种各样的方法来保 存object states,但是Java给你提供一种应该比你自己好的保存对象状态的机制,那就是序列化。
反序列化正好相反,就是将保存的对象读出来,实例为对象。
下面是一个完整而形象的例子:
package com.zakisoft.se; /** * 对象序列化与反序列化 * */ 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; /* 需要持久化的类 * 要想使类支持对象序列化,只需要实现Serializable接口 */ class Person implements Serializable { private static final long serialVersionUID = 3456126674259028540L; /* 属性 */ private String id; private String password; private String name; private int age; // 如果不想对某些属性进行序列化,则需加上transient修饰符 private transient String sex; /* setter和getter方法 */ public String getId() { return id; } public void setId(String id) { this.id = id; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } /* 覆盖toString方法 */ public String toString() { return "对象信息:" + id + " " + password + " " + name + " " + age + " " + sex; } } /* * 实现了对象序列化和反序列化的类 */ public class SeriObject { /** * 序列化 * * @param person * 对象名 * @param file * 指定文件 */ public void writePerson(Person person, String file) { try { // 对象输出流,指向指定文件 ObjectOutputStream out = new ObjectOutputStream( new FileOutputStream(file)); out.writeObject(person);// 将对象写入文件 out.flush();// 清空 out.close();// 关闭 } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } /** * 反序列化 * * @param file * 指定文件 */ public void readPerson(String file) { try { // 对象输入流,来源于指定文件 ObjectInputStream in = new ObjectInputStream(new FileInputStream( file)); Object o = in.readObject();// 将对象从文件读出 in.close();// 关闭 if (o != null) { if (o instanceof Person) System.out.println(o.toString()); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } } public static void main(String[] args) { /* * 测试代码 */ Person person = new Person(); person.setId("aaa"); person.setPassword("bbb"); person.setName("张三"); person.setAge(20); person.setSex("男"); SeriObject so = new SeriObject(); so.writePerson(person, "person.txt"); so.readPerson("person.txt"); } }
发表评论
-
log4j ConversionPattern 参数的格式含义
2014-12-17 11:51 2198ConversionPattern参数的格式含义 格式名 含 ... -
Java的定时器的例子
2012-06-28 14:30 1620一个java的定时器,每隔1秒钟刷新一次JLabel,5秒钟后 ... -
JPDA:Java平台调试架构
2011-11-02 14:51 1408Java Platform Debugger Archit ... -
Sun Standard RMI Properties
2011-10-24 16:43 1594Properties that are useful to s ... -
ant编译时制定jdk版本
2011-07-27 14:21 1814eg: 指定1.5 -Dant.build.javac.tar ... -
SLF4J+logBack 代替 Log4j
2011-07-08 14:33 14226Ceki Gülcü创造了日志领域界著名的Log4J,现在又实 ... -
MAVEN_OPTS和CATALINA_OPTS的作用
2011-07-06 15:25 4351MAVEN_OPTS=-Xdebug -Xrunjdwp:tr ... -
Eclipse WTP
2011-05-09 19:25 1752WTP(Web Tools Platform )项目在ecli ... -
Eclipse Checkstyle下载地址
2011-04-19 15:43 4242http://eclipse-cs.sourceforge.n ... -
MyEclipse8.5 删除J2EE项目中的JavaScript验证
2011-04-01 14:00 3301MyEclipse中J2EE项目中的JavaScript验证, ... -
Java根据容器(List,ArrayList)内对象的字段排序
2011-03-29 13:15 15335用例是这样的: 一个结果集List,里面有很多的对象,要求根据 ... -
为什么使用JUnit
2011-03-28 16:13 4048在你提升程序代码的品 ... -
Myeclipse8.5中svn插件的安装和下载
2011-03-21 13:50 16733安装subclipse, MyEclipse8.5 SVN插件 ... -
NetBeans6的文件树怎样自动展开?
2010-12-05 21:00 1592我们在使用Eclipse时,如果我们点击一个右边的文件,左边的 ... -
NetBeans常用快捷键
2010-11-29 14:07 2035完成代码:ctrl+\ 错误提 ... -
ArrayList和LinkedList的区别
2010-11-01 20:25 1993ArrayList看做是一个大小 ... -
类型后面三个点(String...)和数组(String[])的区别
2010-10-08 13:59 12206关键词:类型后面三个点,数组,String...,String ... -
软件设计师推荐阅读书籍列表
2010-09-28 16:00 1761* 《UML宝典》 * 《UML业务建模》 * 《设计模 ... -
极限编程(Extreme Programming)
2010-09-20 13:47 1437Extreme Programming(极限编 ... -
Java 6的十大亮点
2010-09-19 17:01 1530关键词: Java6,功能,桌面,性能 1.性能和质量 ...
相关推荐
### C#对象序列化与反序列化 #### 1. 对象序列化的介绍 ##### (1).NET支持对象序列化的几种方式 .NET框架提供了多种序列化机制,它们各自有不同的应用场景和特点。 - **二进制序列化**: - **定义**:二进制...
在C#编程中,对象序列化和反序列化是至关重要的技术,它们允许开发者将复杂的对象状态转换为可存储或可传输的数据格式,如XML...以上就是关于C#对象序列化与反序列化的基本知识,以及如何在实践中应用这些概念的实例。
本文将深入探讨Java中的对象序列化与反序列化的概念、原理、实现方法以及相关的注意事项。 **一、对象序列化的概念和作用** 对象序列化是将一个Java对象转换成字节流的过程,这个字节流可以存储在磁盘上,也可以在...
2. **对象序列化与反序列化**: 序列化是将对象转换为可存储或传输的形式,如字节流或文本,而反序列化则是将这些形式恢复为原始对象。C#中的`System.Runtime.Serialization`命名空间提供了多种序列化工具,如`...
Java对象序列化与反序列化是Java编程中重要的概念,主要应用于数据持久化、网络传输以及存储等场景。本文将详细解析这两个概念及其在实际应用中的实现方式。 **一、Java对象序列化** 1. **定义**: Java对象序列化...
通过一个章节来讲解序列化与反序列化,对binaryformatter soapformatter xmlserializer这三种序列化的详情讲解,希望对大家有所帮助。
比如下面的JS对象 var user=new Object(); user.name='吕洞宾'; user.friends=[{name:"铁拐李",sex:"男",friend:user},{name:"何仙姑",sex:"女",friend:user}]; 一般的解析工具都会出错 详细信息请参观 ...
本篇将详细讲解如何利用C#和XML来实现对象的序列化与反序列化。 首先,对象序列化是指将一个对象的状态转换为可以存储或传输的数据格式,如XML、JSON或二进制。在C#中,我们可以使用System.Xml.Serialization命名...
Java对象的序列化和反序列化是Java编程中一项重要的技术,主要用于将对象的状态转换为字节流,以便存储或在网络上传输。这一过程对于理解Java的IO操作、持久化数据以及实现分布式通信等场景非常关键。 首先,我们来...
Xson是一个Java对象序列化和反序列化程序。支持Java对象到字节数组的序列化,和从字节数组到Java对象的反序列化。 Maven: <groupId>com.github.xsonorg</groupId> <artifactId>xson-core <version>1.0.1 ...
本篇文章将深入探讨C++中JSON的序列化与反序列化。 **一、JSON序列化** 序列化是指将C++的对象转换为JSON字符串的过程,以便在网络上传输或保存到文件中。常见的C++ JSON序列化库有RapidJSON、nlohmann/json、...
XML序列化与反序列化是.NET框架中处理数据交换的重要技术,它允许我们将对象的状态转换为XML格式的数据,也可以将XML数据恢复为等效的对象。这个实战项目专注于使用C#实现这一过程,使得开发者能够方便地在XML文件和...
### 对象的序列化与反序列化 #### 概述 序列化与反序列化是计算机科学领域中一种重要的技术手段,主要用于将对象的状态转换为字节流的形式存储或者在网络中传输,之后再将这些字节流恢复为原始对象的过程。在Java...
一、Java对象序列化与反序列化 1. **序列化**: 序列化是将Java对象转换为字节流的过程,以便于存储或传输。通过实现`java.io.Serializable`接口,一个Java对象可以获得序列化的能力。序列化不仅可以保存对象的状态...
这就是Java对象序列化与反序列化的基本概念,以及如何与JSON格式结合使用的示例。在实际应用中,我们还需要考虑异常处理、性能优化以及安全性问题,比如使用`transient`关键字忽略某些字段,或者使用`@...
Java对象的序列化和反序列化...总的来说,Java对象的序列化与反序列化是Java平台中一种强大的工具,它能够帮助开发者在多种场景下有效地处理对象数据。理解并掌握这项技术,对于提升Java应用程序的性能和功能至关重要。
PHP语言中的序列化与反序列化是处理对象状态持久化与重建的重要手段。本文将深入探讨PHP序列化与反序列化的概念、方法以及在实际应用中的重要性,并详细介绍与反序列化相关的安全漏洞。 首先,序列化是一个将对象...
在C#编程中,序列化和反序列化是两个关键的概念,它们主要用于对象状态的持久化和恢复。本文将深入探讨C#中的XML序列化和反序列化技术,包括如何将XML文档解析为对象,以及如何将对象转换回XML文档进行存储。我们将...
反序列化时,我们需要确保接收的数据与原始对象类型匹配,否则可能会抛出异常。 为了简化序列化和反序列化的操作,开发者通常会创建一个封装类,该类提供简单的API供其他代码调用。例如,我们可以创建一个名为`...
在描述的"序列化与反序列化Demo"中,我们可以推测这可能是一个示例项目,展示了如何在实际应用中实现这些操作。这个项目可能包含了代码示例,演示了如何将Java对象转换为JSON字符串,以及如何从JSON字符串恢复回原...