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。串行化的主要任务是写出对象实例变量的值。如果变量是另一个对象
* 的引用,则引用的对象也要串行化,这是个递归过程。
*/
查看全文
相关阅读:
ubuntu用mentohust连接ruijie
vim系统剪切板
JSP 页面中用绝对路径显示图片
response.setContentType与 request.setCharacterEncoding 区别
安装mysql数据库要注意的
eclipse link方式安装插件安装不上
Windows程序调用dll
DP 问题
LeetCode Repeated Substring Pattern
LeetCode Number of Segments in a String
原文地址:https://www.cnblogs.com/eflylab/p/625050.html
最新文章
linux命令学习之:read
linux命令学习之:wc
linux命令学习之:du
linux命令学习之:sort
linux命令学习之:df
linux命令学习之:sed
Quartz代码及配置详解(转)
Maven项目常见的小问题
Maven基本介绍及安装
Aop的基本介绍
热门文章
java之map的基本介绍
Eclipse实用小插件
linux之用户和用户组
linux之无公网ip的自动登录
软件构建流程
java之面向对象的基础知识
http请求的基本介绍
解压tar.gz文件
常用算法
vim系统剪切板
Copyright © 2011-2022 走看看