对象序列化对象流国际化.ppt
《对象序列化对象流国际化.ppt》由会员分享,可在线阅读,更多相关《对象序列化对象流国际化.ppt(30页珍藏版)》请在三一办公上搜索。
1、对象序列化的概念,对象的持续性可以永久性保存一个对象的状态并在需要时获取该对象的信息(重新创建一个完全相同的对象);对象序列化通过写出对象的状态数据来记录一个对象。对象序列化的主要任务:写出对象所有成员变量的值,包括引用类型成员变量对应的对象的信息。,对象序列化的概念,目标:将对象保存到磁盘或者在网络中传递通过对象序列化,可以将对象保存在磁盘或网络中为了实现对象序列化,对应的类必须实现下面的两种接口之一:SerializableExternalizable,对象序列化的实现方式,要序列化一个对象,其所属的类必须实现以下两种 接口之一:Serializable 在流中必须保存有恢复成兼容类型对象
2、所需的各成员变量的值。Externalizable类自身定义其对象的外部存储格式。,ObjectOutputStream,ObjectOutputStream 类提供对象的序列化处写出功能。FileOutputStream f=new FileOutputStream(tmp);ObjectOutputStream s=new ObjectOutputStream(f);s.writeObject(Today);s.writeObject(new Date();s.flush();writeObject方法序列化指定的对象,并遍历该对象对其它对象的引用,递归的序列化所有被引用到的其它对象,从而
3、建立一个完整的序列化流。,ObjectInputStream,ObjectInputStream类提供读取序列化对象的功能FileInputStream in=new FileInputStream(tmp);ObjectInputStream s=new ObjectInputStream(in);String today=(String)s.readObject();Date date=(Date)s.readObject();readObject方法反序列化输入流中的下一个对象,遍历该对象中所有对其它对象的引用,并递归的反序列化这些引用对象。,Serializable 接口,接口只是用来
4、标识出一个类 能够被序列化,并未定义任何抽象方法public interface Serializable,序列化的内容,被序列化的内容:成员变量(包括基本数据类型、数组、对其它对象 的引用)类 名不被序列化的内容:static的属性 方法 加了transient修饰符的属性,对象序列化举例 1,class Name implements Comparable,Serializable private String firstName,lastName;public Name(String f,String l)firstName=f;public String getFirstName()r
5、eturn firstName;public String getLastName()return lastName;public String toString()return firstName+.+lastName;,对象序列化举例 1(续1),public boolean equals(Object obj)if(obj instanceof Name)Name name=(Name)obj;return(firstName.equals(name.firstName),对象序列化举例 1(续2),import java.io.*;import java.util.*;public c
6、lass Test public static void main(String args)List nameList=new ArrayList();nameList.add(new Name(A,C);nameList.add(new Name(B,B);nameList.add(new Name(C,A);nameList.add(new Name(D,A);nameList.add(new Name(E,B);System.out.println(nameList);Collections.sort(nameList);System.out.println(nameList);try
7、FileOutputStream fos=new FileOutputStream(d:namelist.obj);ObjectOutputStream oos=new ObjectOutputStream(fos);System.out.println(save object.);oos.writeObject(nameList);catch(IOException e)e.printStackTrace();System.exit(-1);,对象序列化举例 1(续3),try FileInputStream fis=new FileInputStream(d:namelist.obj);O
8、bjectInputStream ois=new ObjectInputStream(fis);System.out.println(loading object.);List arrayList=(ArrayList)ois.readObject();System.out.println(nameList);Collections.shuffle(nameList);System.out.println(nameList);catch(FileNotFoundException e1)e1.printStackTrace();catch(IOException e1)e1.printStac
9、kTrace();catch(ClassNotFoundException e1)e1.printStackTrace();,在网络中传递对象,建立一个Socket连接,在这个连接之间传递系列化后的对象,对象序列化举例 2,import java.io.*;import.*;import java.util.Date;public class Server public static void main(String args)try ServerSocket server=new ServerSocket(6888);Socket socket=server.accept();ObjectI
10、nputStream ois=new ObjectInputStream(socket.getInputStream();Name name=(Name)ois.readObject();Date date=(Date)ois.readObject();socket.close();System.out.println(date);System.out.println(name);catch(Exception e)e.printStackTrace();,对象序列化举例 2(续),import java.io.*;import.*;import java.util.Date;public c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 对象 序列 国际化

链接地址:https://www.31ppt.com/p-6274293.html