zoukankan
html css js c++ java
序列化 java.io.Serializable
通过 一个简单的例子来认识 Serializable
package
tt;
import
java.io.File;
import
java.io.FileInputStream;
import
java.io.FileOutputStream;
import
java.io.ObjectInputStream;
import
java.io.ObjectOutputStream;
import
java.io.Serializable;
class
ObjectYouWannaSave
implements
Serializable
{
private
static
final
long
serialVersionUID
=
3224332633725166982L
;
//
所有实现Serializable接口的类都需要增加 serialVersionUID
int
x;
int
y;
SubObject so
=
new
SubObject();
}
class
SubObject
implements
Serializable
{
private
static
final
long
serialVersionUID
=
4224332633725166867L
;
String s
=
"
abc
"
;
//
String is OK, because String is java.io.Serializable
}
class
Save
{
//
in Save.java
public
void
main(String[] args)
{
ObjectYouWannaSave original
=
new
ObjectYouWannaSave();
original.x
=
-
1
;
original.y
=
100
;
ObjectOutputStream out
=
null
;
try
{
out
=
new
ObjectOutputStream(
new
FileOutputStream(
new
File(
"
c:/save.dat
"
)));
out.writeObject(original);
//
将 对象写入持久
}
catch
(Exception e)
{
System.out.println(
"
将实例写入文件出错:
"
+
e.toString());
}
finally
{
try
{out.close();}
catch
(Exception e)
{}
}
}
}
class
Read
{
//
in Read.java
public
void
main(String[] args)
{
ObjectInputStream in
=
null
;
try
{
in
=
new
ObjectInputStream(
new
FileInputStream(
new
File(
"
c:/save.dat
"
)));
ObjectYouWannaSave o
=
(ObjectYouWannaSave)in.readObject();
System.out.println(
"
x=
"
+
o.x);
System.out.println(
"
y=
"
+
o.y);
System.out.println(
"
subobject.string=
"
+
o.so.s);
}
catch
(Exception e)
{
}
finally
{
try
{in.close();}
catch
(Exception e)
{}
}
}
}
public
class
TT
{
/** */
/**
* 程序入口
* 2007-01-19 19:43
*/
public
static
void
main(String[] args)
{
//
Save ss = new Save();
//
ss.main(args);
Read rr
=
new
Read();
rr.main(args);
//
这是个最简单的例子,先运行Save,以后什么时候运行Read都可以(只要c:\save.dat文件还存在就可以了)
}
}
/** */
/**
* 对象的寿命通常随着生成该对象的程序终止而终止,有时候,可能需要将对象的状态保存下来,
* 在需要的时候再将对象恢复,我们把对象的这种记录自己状态的以便将来再生的能力,叫做对象
* 的持续性(PERSISTENCE),对象通过写出描述自己状态的数值来记录自己,这个过程叫对象
* 的串行化Serializable。串行化的主要任务是写出对象实例变量的值。如果变量是另一个对象
* 的引用,则引用的对象也要串行化,这是个递归过程。
*/
查看全文
相关阅读:
a++与++a区别
powerdesigner 15.1 逆向工程 sqlserver2008 、sqlserver2005 带注释
Docker部署vue+nginx项目
Spring Cloud项目部署(四)上传docker镜像
Spring Cloud项目部署(三)使用maven插件上传docker镜像的相关配置
centos7 IP设置
Spring Cloud项目部署(二)docker开启2375端口
Spring Cloud项目部署(一)docker安装
高并发网站架构设计(转)
Element UI 那些坑
原文地址:https://www.cnblogs.com/eflylab/p/625050.html
最新文章
脚本化http
jquery事件模型
兼容事件模型
css盒模型
dom事件
IE浏览器十大进化史 盘点微软IE1到IE10辉煌历程(转)
记录一个数据拖拽插件Vue.Draggable
js 字符转换,小驼峰转大写字母开头并且加空格 changeDate -》 Change Date
如何在html.js文件中使用vue组件
vuex f5 vuex数据丢失解决办法
热门文章
h5 手淘适配
viewport
判断一个对象中是否有指定属性
如何将本地文件推送到git仓库(码云)
npm包能安装上 但是不能使用 -bash: express: command not found
如何在linux安装nodejs
spring aop切面理解
select for update
springboot 增加自定义参数解析器
poi导出excel并设置打印样式
Copyright © 2011-2022 走看看