黑马程序员----JAVA基础之序列化与反序列化
2013-04-27 23:41
323 查看
----- android培训、java培训、期待与您交流!
----------
序列化与反序列化
一:什么是序列化和反序列化序列化:将对象转化成流的过程称为序列化
反序列化:将流转化成对象的过程称之为反序列化
二:序列化和反序列化的特点
要让一个类实现序列化,就必须实现java.io.Serializable接口
如果一个属性被transient 修饰,那么不会被序列化
java.io.Serializable接口定义如下:
public interface Serializable {
}
三:把对象序列化主要的两种用途:
(1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中;
(2) 在网络上传送对象的字节序列。
四:什么时候用序列化
(1)永久性保存对象,保存对象的字节序列到本地文件中;
(2)通过序列化对象在网络中传递对象;
(3)通过序列化在进程间传递对象。
序列化的实现
序列化主要依赖java.io.ObjectOutputStream类,该类对java.io.FileOutputStream进一步做了封装,这里主要使用ObjectOutputStream类的writeObject()方法实现序列化功能
案例
/** *将对象序列化到磁盘文件中 */ publicstaticvoid writeObject(Object o) throws Exception{ File f=new File("d:""user.tmp"); if(f.exists()){ f.delete(); } FileOutputStream os=new FileOutputStream(f); //ObjectOutputStream 核心类 ObjectOutputStream oos=new ObjectOutputStream(os); oos.writeObject(o); oos.close(); os.close(); }
反序列化的实现
反序列化主要依赖java.io.ObjectInputStream类,该类对java.io.InputStream进一步做了封装,这里主要使用ObjectInputStream类的readObject()方法实现序列化功能
案例
/** *反序列化,将磁盘文件转化为对象 *@throwsException */ publicstatic User readObject(File f) throws Exception{ InputStream is=new FileInputStream(f); //ObjectOutputStream 核心类 ObjectInputStream ois=new ObjectInputStream(is); return (User)ois.readObject(); }
----- android培训、java培训、期待与您交流!
----------
相关文章推荐
- 黑马程序员——Java基础——对象序列化、管道流、RandomAccessFile类、操作基本数据类型的流对象、字符编码
- 黑马程序员——JAVA基础---对象的序列化与反序列化
- 黑马程序员_Java基础:序列化(Serializable)与反序列化
- 黑马程序员--Java基础学习笔记【序列化、多线程】
- 黑马程序员_Java基础:序列化(Serializable)与反序列化
- 黑马程序员_Java基础_IO流(对象序列化和字符编码)
- 黑马程序员 java基础测试(2013年4月)
- 黑马程序员--Java基础加强--06.【泛型通配符限定】【个人总结】
- 黑马程序员——Java基础--面向对象(1)
- 黑马程序员 JavaSE-04 Java基础语法3:方法、数组
- 黑马程序员 java基础要点整理
- 黑马程序员——Java基础——IO流笔记(File使用示例)
- 黑马程序员__java基础__GUI
- 黑马程序员-java基础 枚举
- 黑马程序员--JAVA基础复习之String
- 黑马程序员-----Java基础-----抽象类
- 黑马程序员-----java基础(面向对象基础)
- 黑马程序员 Java基础加强 枚举
- 黑马程序员——Java基础---集合
- 黑马程序员,看Java基础视频笔记:反射