文档章节

java 篇IO 之Serializable

开源大法好啊
 开源大法好啊
发布于 2017/07/23 15:56
字数 354
阅读 7
收藏 0

为什么要说这个类,我们在远程调用的时候都会用到这个类

1、串行化

首先要理解串行化是什么,串行化是讲对象状态(属性、方法、参数等)写入字节流的过程,这样我们可以把对象状态保存在内存,文件中,假如我们要用到这个对象,我们从这里反串行化还原成对象。

2、实现Serializable的接口和类可以通过串行化和反串行化,Serializable接口没有方法,只是作为一个标记(可以串行化和反串行化)

3、objectOutput 和 objectInput (讲这两个类的原因是里面有实现序列化和反序列化的方法)

objectOutput 里面有个writeObject(Object object),这个方法是用来把对象写入到流中的方法

列如:

try (ObjectOutput objectOutput = new ObjectOutputStream(new FileOutputStream("D://array.txt"));){
    SerializableEntity entity = new SerializableEntity();
    entity.setMessage("你好");
    objectOutput.writeObject(entity); //内部实现其实是保存了object状态
}catch (Exception e){
    e.printStackTrace();
}

下面是对象在文件的状态

下面我们可以通过objectInput的readObject()从文件还原对象

try (ObjectInput input = new ObjectInputStream(new FileInputStream("D://array.txt"))){
    SerializableEntity entity = (SerializableEntity) input.readObject();//取出object
    System.out.println(entity.getMessage()); //结果 “你好”
}catch (Exception e){
    e.printStackTrace();
}

所以大家知道远程调用为什么一定要用到序列化,因为你要通过网络流的方法还原远程对象,所以本地才可以调用

 

© 著作权归作者所有

共有 人打赏支持
开源大法好啊
粉丝 2
博文 42
码字总数 17798
作品 0
闵行
Android Serializable与Parcelable原理与区别

一、序列化、反序列化是什么? (1) 名词解释 对象的序列化 : 把Java对象转换为字节序列并存储至一个储存媒介的过程。 对象的反序列化:把字节序列恢复为Java对象的过程。 (2) 序列化详细解释 ...

KingMing
2015/04/16
0
0
Understand The SerialVersionUID

If you have ever implemented Serializable interface, you must encounter this warning message The serializable class xxx does not declare a static final serialVersionUID field of......

neumeng
2014/03/14
0
0
JavaIO/输出输入入门

IO称之为输入输出,Java的IO是通过java.io包下的类和接口来支持,包含两大类:输入,输出. 在整个Java.io包中最重要的就是5个类和一个接口。5个类指的是File、OutputStream、InputStream、Write...

Zhao-Qian
2013/01/04
0
0
关于Java你可能不知道的10件事

关于Java你可能不知道的10件事 本文由 ImportNew - Jerry Lee 翻译自 Jooq。欢迎加入翻译小组。转载请参见文章末尾的要求。 呃,你是不是写Java已经有些年头了?还依稀记得这些吧: 那些年,...

enosh
2014/11/27
0
0
《Python3.6官方文档》– 六月翻译邀请

原文链接 邀请者:小村长 概述 本篇是 Python官方文档的的翻译邀请函。只从AlphaGo成功挑战世界围棋冠军之后,在软件工程界掀起了一股人工智能热。而Python凭借着大量丰富的机器学习库迎来了...

xiaocunzhang
01/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Shell | linux安装包不用选择Y/N的方法

apt-get install -y packageOR echo "y" | sudo apt-get install package

云迹
6分钟前
0
0
Hadoop的大数据生态圈

基于Hadoop的大数据的产品圈 大数据产品的一句话概括 Apache Hadoop: 是Apache开源组织的一个分布式计算开源框架,提供了一个分布式文件系统子项目(HDFS)和支持MapReduce分布式计算的软件架...

zimingforever
21分钟前
1
0
八大包装类型的equals方法

先看其中一个源码 结论:八大包装类型的equals方法都是先判断类型是否相同,不相同则是false,相同则判断值是否相等 注意:包装类型不能直接用==来等值比较,否则编译报错,但是数值的基本类型...

xuklc
45分钟前
1
0
NoSQL , Memcached介绍

什么是NoSQL 非关系型数据库就是NoSQL,关系型数据库代表MySQL 对于关系型数据库来说,是需要把数据存储到库、表、行、字段里,查询的时候根据条件一行一行地去匹配,当量非常大的时候就很耗...

TaoXu
昨天
0
0
890. Find and Replace Pattern - LeetCode

Question 890. Find and Replace Pattern Solution 题目大意:从字符串数组中找到类型匹配的如xyy,xxx 思路: 举例:words = ["abc","deq","mee","aqq","dkd","ccc"], pattern = "abb"abc ......

yysue
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部