IO流--序列化流与反序列化流
IO流--序列化流与反序列化流:
序列化流:把对象当做流一样写入到文本文件中 ObjectOutputSream();
反序列化流:把文本文件中的流对象还原成对象ObjectInputSream();
具体的使用:
1 创建java对象 实现序列化接口(Serializable):

序列化代码实现:
private void writer() throws IOException {
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("OnlyFileTest\\testObj.txt"));
Student student = new Student("无极",23);
oos.writeObject(student);
oos.close();
}
反序列化代码实现:
private void read() throws IOException, ClassNotFoundException {
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("OnlyFileTest\\testObj.txt"));
Object o = ois.readObject();
ois.close();
System.out.println(o);
}
因为类实现了serializable接口(只起对类进行标记的作用!!),底层会生成serialVersionUID;我们每次修改java文件,id会变化,就会导致读写id的值不匹配,就会报错;
解决:让id是一个固定的值即可:
使用 Idea自动生成serialVersionUID:
完整操作流程:Setting->Editor->Inspections->Java->Serialization issues->Serializable class without ‘serialVersionUID’(选择勾上)
配置完成后,如果你的Class实现了Serializable接口,那么将光标停留在类名上,然后按Alt+Enter就会提示自动创建serialVersionUID了。

2:如果一个类实现Serializable接口后,不想里面的某个成员变量被序列化:可使用 transient 关键字;

IO流--序列化流与反序列化流的更多相关文章
- ObjectOutputStream:对象的序列化流 ObjectInputStream:对象的反序列化流
package com.itheima.demo04.ObjectStream; import java.io.FileOutputStream; import java.io.IOException ...
- 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_09 序列化流_3_对象的反序列化流_ObjectInputStream
声明了IO异常,这里还是红色的 转换为Person对象
- Java基础知识强化之IO流笔记65:序列化流 和 反序列化流
1. 什么是 序列化 和 反序列化 ? 序列化 (Serialization):将对象的状态信息转换为可以存储或传输的形式的过程.比如转化为二进制.xml.json等的过程. 在序列化期间,对 ...
- Java IO流-序列化流和反序列化流
2017-11-05 20:42:06 序列化流:把对象按照流的方式存入文本文件或者在网络中传输. 对象 -- 流数据(ObjectOutputStream) 反序列化流:把文本文件中的流对象数据或者 ...
- IO流之序列化流与反序列化流
序列化流与反序列化流 用于从流中读取对象的 操作流 ObjectInputStream 称为 反序列化流 用于向流中写入对象的操作流 ObjectOutputStream 称为 序列化流 l ...
- IO流的Properties集合,序列化流与反序列化流,打印流及commons-IO
内容介绍 Properties集合 序列化流与反序列化流 打印流 commons-IO Properties类 Properties类介绍 Properties 类表示了一个持久的属性集.Proper ...
- java ->IO流_序列化流与反序列化流
序列化流与反序列化流 用于从流中读取对象的操作流 ObjectInputStream 称为 反序列化流 用于向流中写入对象的操作流 ObjectOutputStream 称为 序列化流(对象 ...
- IO—》Properties类&序列化流与反序列化流
Properties类 介绍:Properties 类表示了一个持久的属性集.Properties 可保存在流中或从流中加载.属性列表中每个键及其对应值都是一个字符串. Properties类特点: ...
- Java API —— IO流(数据操作流 & 内存操作流 & 打印流 & 标准输入输出流 & 随机访问流 & 合并流 & 序列化流 & Properties & NIO)
1.操作基本数据类型的流 1) 操作基本数据类型 · DataInputStream:数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型.应用程序可以使用数据输出 ...
随机推荐
- Google Apps的单点登录-谷歌使用的单点登录
简述: Customer :客户 Google:谷歌 Identity Provider:身份提供者安全断言标记语言(英语:Security Assertion Markup Language,简称S ...
- 【Luogu2197】NIM游戏(博弈论)
题面 洛谷 题解 \(Nim\)游戏模板题 #include<iostream> #include<cstdio> #include<cstdlib> using ...
- 【BZOJ5197】Gambling Guide (最短路,期望)
[BZOJ5197]Gambling Guide (最短路,期望) 题面 BZOJ权限题 洛谷 题解 假设我们求出了每个点的期望,那么对于一个点,只有向期望更小的点移动的时候才会更新答案. 即转移是: ...
- 添加默认安全组规则-openstack
if [ "$1" ] ;then neutron security-group-rule-create --direction ingress --ethertype ipv4 ...
- NOIP引水入城(dfs)
为了使居民们都尽可能饮用到清澈的湖水,现在要在某些城市建造水利设施.水利设施有两种,分别为蓄水厂和输水站.蓄水厂的功能是利用水泵将湖泊中的水抽取到所在城市的蓄水池中. 因此,只有与湖泊毗邻的第1 行的 ...
- Android 架构 -- Room
gradle依赖: // add for room implementation "android.arch.persistence.room:runtime:1.1.1" // ...
- js click 与 onclick 事件绑定,触发与解绑
click 与 onclick 1.onclick 事件会在对象被点击时发生. <input id="btn1" type="button" onclic ...
- 在Vue框架中使用百度地图
1.首先在index.html中引入百度地图 <script type="text/javascript" src="http://api.map.baidu.co ...
- 在html页面通过js实现复制粘贴功能
前言:要实现这个功能,常用的方式大概分为两类,第一种就是上插件,这个网上有大把,第二种就是直接用几行JS来实现. 这次说第二种实现方式,这方式有很大的局限性,只能用表单元素,并且不能设置disable ...
- DAY1初识Python----变量及命名规则,注释,数据类型,常量,交互
1.认识和了解python python是一门解释型语言,弱类型语言 2.python发展史 2008年 2.X,3.X 3.第一个python程序 python语句可以写在命令行中,进行编 ...