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。串行化的主要任务是写出对象实例变量的值。如果变量是另一个对象
* 的引用,则引用的对象也要串行化,这是个递归过程。
*/
查看全文
相关阅读:
每日日报30
每日作业报告
每日作业报告
每日作业报告
每日作业报告
每日作业报告
每日作业报告
每日作业报告
每日作业报告
Java学习的第四十三天
原文地址:https://www.cnblogs.com/eflylab/p/625050.html
最新文章
886. Possible Bipartition
676. Implement Magic Dictionary
牛妹的苹果树【LCA+ST表】
*牛妹游历城市【最短路建虚点】
牛牛爱博弈
小w的a=b问题
Isomorphic Strings【字符串hash】-2020杭电多校8
Groundhog and Apple Tree【贪心】-2020牛客暑期多校9
Battle for Wosneth2【概率】-2020百度之星复赛
Jogging-2020杭电多校7
热门文章
Game【博弈论】-2020杭电多校7
记java.text.SimpleDateFormat转换yyyyMMdd格式时显示错误的问题
记mysql datetime转成pojo date时使用equals的坑
每日日报37
每日日报36
每日日报
每日日报34
每日日报33
每日日报32
每日日报31
Copyright © 2011-2022 走看看