Java序列化反序列化对象流ObjectInputStream、ObjectOutputStream
使用Person类作为Object进行示范
注意:Object要能被写入流需要实现Serializable接口
存储的文件后缀名为.ser
示范Person类
import java.io.Serializable;
public class Person implements Serializable{
private static final long serialVersionUID = 1L;
String name;
int age;
boolean sex;//true means male false means female
Person(String name,int age,boolean sex)
{
this.name=name;
this.age=age;
this.sex=sex;
}
void print()
{
System.out.println("姓名:"+name);
System.out.println("年纪:"+age);
System.out.println("性别:"+sex);
}
}
将Person对象序列化存储到文件
示范Serializable_Test 类
import java.io.File;
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
public class Serializable_Test {
public static void main(String[] args) {
try {
Person p=new Person("张三",18,true);
File f=new File("D:\\objecttest.ser");
FileOutputStream fos=new FileOutputStream(f);
ObjectOutputStream oos=new ObjectOutputStream(fos);
oos.writeObject(p);
oos.close();
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
从文件中读取对象,反序列化Deserializable
示范Deserializable_Test类
import java.io.File;
import java.io.FileInputStream;
import java.io.ObjectInputStream;
public class Deserializable_Test {
public static void main(String[] args) {
try {
File f=new File("d:\\objecttest.ser");
FileInputStream fis=new FileInputStream(f);
ObjectInputStream ois=new ObjectInputStream(fis);
Person p=(Person)ois.readObject();
p.print();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Java序列化反序列化对象流ObjectInputStream、ObjectOutputStream的更多相关文章
- 初尝Java序列化/反序列化对象
看个类: package com.wjy.bytes; import java.io.Serializable; public class ObjTest implements Serializabl ...
- 零基础学习java------day17------缓冲字节流,转换字节流,简化流,缓冲字符流,序列化和对象流
1. 缓冲字节流 缓冲区:缓冲区实质上是一个数组.通常它是一个字节数组,但是也可以使用其他种类的数组.但是一个缓冲区不 仅仅 是一个数组.缓冲区提供了对数据的结构化访问,而且还可以跟踪系统的读/写进程 ...
- Java IO 流 -- 数据流和对象流 DataOutputStream ObjectOutputStream
DataOutputStream 和 ObjectOutputStream的共同点是: 1.写出后读取 2.读取顺序和写出一致 数据流操作: // 写入 ByteArrayOutputStream b ...
- java序列化反序列化深入探究
When---什么时候需要序列化和反序列化: 简单的写一个hello world程序,用不到序列化和反序列化.写一个排序算法也用不到序列化和反序列化.但是当你想要将一个对象进行持久化写入文件,或者你想 ...
- java序列化反序列化深入探究(转)
When---什么时候需要序列化和反序列化: 简单的写一个hello world程序,用不到序列化和反序列化.写一个排序算法也用不到序列化和反序列化.但是当你想要将一个对象进行持久化写入文件,或者你想 ...
- java序列化/反序列化之xstream、protobuf、protostuff 的比较与使用例子
目录 背景 测试 环境 工具 说明 结果 结论 xstream简单教程 准备 代码 protobuf简单教程 快速入门 下载.exe编译器 编写.proto文件 利用编译器编译.proto文件生成ja ...
- json 常用的序列化 反序列化对象 代码
序列化对象: ---------------------------------------------------------- Person p = new Person() { Name = & ...
- Java——序列化 反序列化
记录一下: 先粘两个比较繁琐的方法: put: public void putSerializableObject(String key, Object value, int expireTime) ...
- Java 序列化 反序列化 历史版本处理
直接引用 http://www.cnblogs.com/xdp-gacl/p/3777987.html
随机推荐
- 使用catsup快速建立个人博客
一.安装 time: 2016-01-2 20:30 1.使用pip安装catsup:(sudo) pip install catsup 从旧版本升级到新版本:(sudo) pip install c ...
- Spring Boot—04文件上传
package com.smartmap.sample.ch1.controller.view; import java.io.File; import java.io.IOException; im ...
- Global Average Pooling Layers for Object Localization
For image classification tasks, a common choice for convolutional neural network (CNN) architecture ...
- python学习笔记之——python函数
1.定义一个函数 你可以定义一个自己想要功能的函数,以下是简单的规则: 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号(). 任何传入参数和自变量必须放在圆括号中间.圆括号之间可以用于定 ...
- EJB JBOSS的安装
下载地址:http://www.jboss.org/jbossas/downloads 下载JBoss 4.2.3-->解压 启动:bin-->run.bat 管理后台:www.local ...
- Android的onCreateOptionsMenu()创建菜单Menu
android一共有三种形式的菜单: 1.选项菜单(optinosMenu) 2.上下文菜单(ContextMenu) 3.子菜 ...
- display:table-cell实现水平垂直居中
如果查看css手册,会发现display有许多带table字样的可选属性,有table.inline-table.table-row-group.table-row.table-cell等10个之多, ...
- idea 自定义视图
效果: 设置:!file:.iml&&!file:.idea//&&!file:.settings//*&&!file:.classpath&& ...
- mysql优化——explain详解
MySQL的EXPLAIN命令用于SQL语句的查询执行计划(QEP).这条命令的输出结果能够让我们了解MySQL 优化器是如何执行SQL 语句的.这条命令并没有提供任何调整建议,但它能够提供重要的信息 ...
- 使用Vundle管理Vim插件
附:仓库地址 附:我自用的vim配置文件,里面注释很多,仅供参考. Vundle是一款Vim的插件管理软件(Linux),用起来很方便的原因有几点: 支持插件超多,可以来源于github.Vundle ...