public static Reservation[] openBinaryFile( String fileName )
{
Reservation [] objArray = null;
try
{
ObjectInputStream inStream = new ObjectInputStream(
new FileInputStream( fileName ) );
objArray = (Reservation[])inStream.readObject();
inStream.close();
}
catch( ClassNotFoundException e )
{
System.out.println( "Exception: ClassNotFoundException." );
}我已经包含了这个类,但是为什么我会得到一个异常?这个类和其他类在同一个包中。为什么我会得到这个异常?
编辑:这是堆栈跟踪运行: java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native方法的保留) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:252)的java.lang.ClassNotFoundException在java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) at java.lang.Class.forName0(本机方法) at java.lang.Class.forName(Class.java:247) at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:604) at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575) at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496) at java.io.ObjectInputStreamjava.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) at myViewer.DatabaseFile.openBinaryFile(DatabaseFile.java:42) at myViewer.Viewer的.readArray(ObjectInputStream.java:1624)。(Viewer.java:175) at myViewer.Viewer.main(Viewer.java:188)
发布于 2010-03-12 05:05:27
两件事:
Reservation[] Reservation的子类型(例如,VIPReservation),则需要该type的二进制文件
确保与Reservation的版本完全相同的
立即可操作:
查看堆栈跟踪,它希望Reservation位于默认包中。确保情况就是这样。
发布于 2010-03-12 05:04:16
有问题的类文件与最初序列化实例的类文件的版本不同。将其对齐,或者为它们提供相同的serialVersionUID。
发布于 2010-03-12 05:05:18
到底是什么给了你这个例外?e.printStackTrace()会告诉你的。也许你没有import java.io.ObjectInputStream
https://stackoverflow.com/questions/2428636
复制相似问题