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
随机推荐
- 2017年5月22日 HTML基础知识(一)
一.Html 结构 1.1.HTML基本文档格式—<html> 标记 —<html>文档的头部好和主体内容 </html> 根标记 —<head> 文 ...
- HTML meta标签总结,HTML5 head meta属性整理
原文链接:http://caibaojian.com/mobile-meta.html <!DOCTYPE html> <!-- 使用 HTML5 doctype,不区分大小写 -- ...
- 【转】教你弄清 OSX 的睡眠模式,以及合法的禁止产生 sleepimage
原文链接 因为之前用的是网上流传的土法来禁止生成 sleepimage,尝到了苦头,而且2次! 大家知道 OSX 有几种睡眠模式,其中 hibernatemode 可以是 0 (传统睡眠方式,不生成 ...
- Linux 运维工程师一定要知道的六类好习惯和23个教训
一.线上操作规范 1.测试使用当初学习Linux的使用,从基础到服务到集群,都是在虚拟机做的,虽然老师告诉我们跟真机没有什么差别,可是对真实环境的渴望日渐上升,不过虚拟机的各种快照却让我们养成了各种手 ...
- 第六章 函数、谓词、CASE表达式 6-2 谓词
一.什么是谓词 需要满足返回值为真值的函数.谓词的返回值全都是真值(TRUE/ FALSE/UNKNOWN) 如:LIKE/BETWEEN /IS NULL/IS NOT NULL/IN/EXISTS ...
- CATransform3D的m34使用
CATransform3D的m34使用 效果图 源码 // // ViewController.m // StarWars // // Created by YouXianMing on 15/11/ ...
- 通过runtime获取对象相关信息
通过runtime获取对象相关信息 在这里,本人给大家提供一个runtime关于NSObject的扩展,用来显示各种NSObject中的信息,这有助于你来分析类的组成:) 先准备以下类供测试: Mod ...
- Python入门-模块1(模块导入与time模块)
---恢复内容开始--- 模块 一.模块分类: 模块分为三种: 1.内置模块:Python自带的标准模块(可使用help('modules’)查看Python自带模块列表) 2.第三方开源模块:可以通 ...
- php面试宝典
1.表单中 get与post提交方法的区别? 答:get是发送请求HTTP协议通过url参数传递进行接收,而post是实体数据,可以通过表单提交大量信息. 2.session与cookie的区别? 答 ...
- 五十个小技巧提高PHP执行效率
在项目开发过程中,经常遇到了一些PHP处理程序性能底下的情况,程序运行在centos+nginx环境,虽然这个有很多的原因如:服务器本身配置,运行环境nginx服务,php-fpm配置等等,更多有一点 ...