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。串行化的主要任务是写出对象实例变量的值。如果变量是另一个对象
* 的引用,则引用的对象也要串行化,这是个递归过程。
*/
查看全文
相关阅读:
PHP项目学习1
常见的几种单例模式
CGlib和JDK动态代理
jar打包方法使用整理
JVM内存分配原理
JDK环境变量配置目录jre,jvm
android学习笔记13——ExpandableListView
android学习笔记12——ListView、ListActivity
android学习笔记11——ScrollView
android学习笔记十——TabHost
原文地址:https://www.cnblogs.com/eflylab/p/625050.html
最新文章
bzoj1296 [SCOI2009]粉刷匠
托福考试
拉马努金,天才之超越
这位华裔天才数学家情商也蛮高,他给了25条职业建议
生来只为丈量天空,开普勒的传奇一生
哥廷根: Heroes in My Heart
清明节专题——一些数学家的坟墓
【资料】【哈代/拉马努金】悼文
【资料】印度数学家拉马努金
【资料】哈代&拉马努金相关,悼文,哈佛演讲,及各种杂七杂八资料整理
热门文章
三素数定理的证明及其方法
SQL SERVER2014的安装
SQL Serever学习6——数据表
SQL Serever学习5——数据库配置
SQL Serever学习4
SQL Server学习3
SQL SERVER学习2——数据库设计
SQL SERVER学习1——数据库概念
PHP项目学习——控件
PHP项目学习2
Copyright © 2011-2022 走看看