日期:2011-03-22 16:17:00 来源:本站整理
根究类[Java编程]
本文“根究类[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
读者大概会奇特为什么需求一个对象从它的序列化状况中恢复.举个例子来说,假定我们序列化一个对象,并通过网络将其作为文件传送给另一台机械.此时,位于另一台机械的程序可以只用文件目录来重新构造这个对象吗?
答复这个问题的最好办法就是做一个实行.下面这个文件位于本章的子目录下:
//: Alien.java // A serializable class import java.io.*; public class Alien implements Serializable { } ///:~
用于成立和序列化一个Alien对象的文件位于相同的目录下:
//: FreezeAlien.java // Create a serialized output file import java.io.*; public class FreezeAlien { public static void main(String[] args) throws Exception { ObjectOutput out = new ObjectOutputStream( new FileOutputStream("file.x")); Alien zorcon = new Alien(); out.writeObject(zorcon); } } ///:~
该程序并非捕捉和掌握违例,而是将违例简单、直接地传送到main()外部,这样便能在号令行报告它们.
程序编译并运行后,将后果产生的file.x复制到名为xfiles的子目录,代码以下:
该程序能翻开文件,并成功读取mystery对象中的内容.但是,一旦尝试查找与对象有关的任何资料——这要求Alien的Class对象——Java虚拟机(JVM)便找不到Alien.class(除非它恰好在类途径内,而本例理应相反).这样就会得到一个名叫ClassNotFoundException的违例(一样地,若非可以校验Alien存在的证据,不然它等于消逝).//: ThawAlien.java // Try to recover a serialized file without the // class of object that's stored in that file. package c10.xfiles; import java.io.*; public class ThawAlien { public static void main(String[] args) throws Exception { ObjectInputStream in = new ObjectInputStream( new FileInputStream("file.x")); Object mystery = in.readObject(); System.out.println( mystery.getClass().toString()); } } ///:~
恢复了一个序列化的对象后,假如想对其做更多的事情,必须保证JVM能在本地类途径大概因特网的其他什么地方找到相关的.class文件.
以上是“根究类[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
- ·上一篇文章:java序列化的掌握
- ·下一篇文章:java的对象串通
- ·中查找“根究类”更多相关内容
- ·中查找“根究类”更多相关内容
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论