Core Java 经典教程十四

Core Java 经典教程十四

ID:37152000

大小:69.50 KB

页数:10页

时间:2019-05-19

Core Java 经典教程十四_第1页
Core Java 经典教程十四_第2页
Core Java 经典教程十四_第3页
Core Java 经典教程十四_第4页
Core Java 经典教程十四_第5页
资源描述:

《Core Java 经典教程十四》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、ObjectInputStream和ObjectOutputStream(对象流)对象流是过滤流,需要节点流作参数来构造对象。用于直接把对象写入文件和从文件读取对象。只有实现了Serializable接口的类型的对象才可以被读写,Serializable接口是个标记接口,其中没有定义方法。对象会序列化成一个二进制代码。writeObject(o),ObjectreadObject()这两个是对象读写操作时用的方法。Objecto=newObject();FileOutputStreamfos=newFileOutput

2、Stream("Object.txt");ObjectOutputStreamoos=newObjectOutputStream(fos);oos.writeObject(o);oos.close();FileInputStreamfis=newFileInputStream(“Object.txt”);ObjectInputStreamois=newObjectInputStream(fis);Objecto=(Object)Ois.readObject();ois.close();对象流读取结束返回EOFExcep

3、tion异常对象。一个类中有其他类型的对象,那么,这个类实现了Serializable接口,在对象序列化时,也同样要求这个类中属性都能够对象序列化(基本类型除外)。注意:对于对象流的操作,在写对象时要一次写入完毕,如果使用追加模式写入,只会读取到上一次写入的对象,使用对象流写入时,会先写入一个头部,然后写入数据,最后加上结束符号,如果使用追加方式写入的话,那就会在结束符号继续向下写入,但是在读取时只会读到结束符为止,以后再次写入的数据就会丢失。注意:在使用对象流写入对象时要一次向文件写入,不能够采用追加方式。seria

4、lver命令判断是否一个属性或对象可序列化,serialverTestObject(TestObject必须为已经编译,也就是.class)执行结果:如果不可序列化;则出现不可序列化的提示。如果可以序列化,那么就会出现序列化的ID:UID。Externalizable这是Serializable的子接口,他可以让用户自定义如何序列化对象。readExternal(ObjectInputin),writeExternal(ObjectOutputout)这是这个接口中的两个方法,通过这两个方法可以定制序列化过程。这个方法

5、不安全,可以调用以上两个方法改变对象的状态。transient只能用来修饰属性。表示这个属性在对象序列化时将被忽略。transientintnum;表示当我们对属性序列化时忽略这个属性(即忽略不使之持久化)。所有属性必须都是可序列化的,特别是当有些属性本身也是对象的时候,要尤其注意这一点。java.util.StringTokenizer类,这个类是用于字符串截取的。StringTokenizer(参数1,参数2)按某种符号隔开文件StringTokenizer(s,”:”)用“:”隔开字符,s为对象。补充:字节流结束

6、返回-1,字符流结束返回null,对象流结束返回EOFException引申---------〉异常经常被用在流程控制,异常也是方法的一种返回形式。例:importjava.io.*;publicclassTestObjectStream{publicstaticvoidmain(String[]args)throwsException{//TODOAuto-generatedmethodstubFileOutputStreamfo=newFileOutputStream("student.dat");ObjectOu

7、tputStreamout=newObjectOutputStream(fo);Students=newStudent(20,"Liucy");out.writeObject(s);out.close();FileInputStreamfi=newFileInputStream("student.dat");ObjectInputStreamin=newObjectInputStream(fi);Objecto=in.readObject();System.out.println(o);}}classStudentim

8、plementsSerializable{transientintage;Stringname;publicStudent(intage,Stringname){super();//TODOAuto-generatedconstructorstubthis.age=age;this.name=name;}publicintgetA

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。