序列化
来源:互联网 发布:淘宝卖家申请小二介入 编辑:程序博客网 时间:2024/06/02 17:43
1.什么叫做序列化
java的序列化是能将一个实现了serializable接口的对象转换成一组byte,这样日后要用这个对象的时候,就能把这些byte数据恢复过来,并据此构建以前那个对象。
在跨网络平台也是如此,这就意味着序列化机制能自动补偿操作系统方面的差异。比如说如果在UNIX机器上创建一个对象,序列化后在Windows机器上可以进行重建。
完全不用担心平台不同所造成的影响,或者byte数据的顺序怎样之类的细节。
2.序列化实现重要功能
1)java远程方法调用(Remote Method Invocation,简称RMI):在远程对象传递消息的时候,通过序列化传送参数和返回值,就能使远程调用像调用自己机器上的对象
那样。
2)javaBean:因为Bean的状态信息通常是在设计时配置的,这些信息必须保存起来,供程序调用的时候用,而对象序列化就是负责这部分,所以在这里序列化必不可少。
3.如何实现对象序列化
要想实现对象序列化,必须实现java.io.Serializable接口,查看API发现这个接口里面没有任何方法,所以序列化接口只是一个标记型接口,只要一个类实现了该接口,java
系统就知道该对象可以序列化。类实现了序列化接口,该类的对象就可以存盘或通过网络传输了。要对对象进行读/写操作,首先我们要建立某些OutputStream对象,然后
将其包装在一个ObjectOutputStream对象内,然后调用writeObject()对对象进行序列化。如果要将序列化好的对象还原,那么我们就先建立InputStream包装在ObjectInputStream内,然后调用readObject()即可
4.实例
创建一个用户对象(为了说明问题只有用户名,密码)并将它们写入user.obj文件,然后从文件读取这个user对象,在屏幕显示出来
class User implements Serializable{
private String username;
private String password;
public User(String name,String pwd){
this.username = name;
this.password = pwd;
}
public String toString(){
return "username="+username+"password="+password;
}
}
public class ObjectSerializableDemo{
public static void main(String[] args) throws Exception{
String filename = "D:/user.obj";
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(filename));
oos.writeObject(new User("张三","1111111"));
oos.flush;
oos.close();
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(filename));
User user = (User)ois.readObject();
System.out.println(user);
ois.close();
}
}
- 序列化
- 序列化
- 序列化
- 序列化
- 序列化
- 序列化
- 序列化
- 序列化
- 序列化
- 序列化
- 序列化
- 序列化
- 序列化
- 序列化
- 序列化
- 序列化
- 序列化
- 序列化
- Firefox 检测到该服务器正在将此地址的请求循环重定向的解决方法
- 安得倚天抽宝剑——搭建实验系统
- Java中Excel导入功能实现、excel导入公共方法_POI -
- thinking in Java之对象入门
- 13.5 Best Time to Buy and Sell Stock III
- 序列化
- l链式栈
- Solr 多核(MultiCore)配置
- POJ 1003 Hangover
- 3D Slicer编译 vs2008
- OC (六)
- UVa 11795 - Mega Man's Mission(集合DP 状态压缩)
- tyvj begin 闰秒 wa了2个小时竟然 【水题】
- 对于架构师的一点理解(来自网友讨论)