寻找类 - 编程入门网
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-07-04
寻找类时间:2007-05-29 yycnet.yeah.net yyc译 读者或许会奇怪为什么需要一个对象从它的序列化状态中恢复。举个例子来说,假定我们序列化一个对象,并通过网络将其作为文件传送给另一台机器。此时,位于另一台机器的程序可以只用文件目录来重新构造这个对象吗?回答这个问题的最好方法就是做一个实验。下面这个文件位于本章的子目录下:用于创建和序列化一个Alien对象的文件位于相同的目录下://: Alien.java // A serializable class import java.io.*; public class Alien implements Serializable { } ///:~ 该程序并不是捕获和控制违例,而是将违例简单、直接地传递到main()外部,这样便能在命令行报告它们。程序编译并运行后,将结果产生的file.x复制到名为xfiles的子目录,代码如下://: 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); } } ///:~ 该程序能打开文件,并成功读取mystery对象中的内容。然而,一旦尝试查找与对象有关的任何资料——这要求Alien的Class对象——Java虚拟机(JVM)便找不到Alien.class(除非它正好在类路径内,而本例理应相反)。这样就会得到一个名叫ClassNotFoundException的违例(同样地,若非能够校验Alien存在的证据,否则它等于消失)。恢复了一个序列化的对象后,如果想对其做更多的事情,必须保证JVM能在本地类路径或者因特网的其他什么地方找到相关的.class文件。//: 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()); } } ///:~ |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: 按值传递 - 编程入门网下一篇: java中的protected - 编程入门网
关于寻找类 - 编程入门网的所有评论