在序列化中
ObjectInputStream in = new ObjectInputStream(new FileInputStream(file));
Object o = null;
o = in.readObject();程序每次到in.readObject();这里就报错
报错原因是
java.lang.ClassNotFoundException: ij.bean.RoiBean其实,我知道他的意思是缺少这个类
但是,我很不明白,我这是输入输出流呀,为什么还要这样呀?
ObjectInputStream in = new ObjectInputStream(new FileInputStream(file));
Object o = null;
o = in.readObject();程序每次到in.readObject();这里就报错
报错原因是
java.lang.ClassNotFoundException: ij.bean.RoiBean其实,我知道他的意思是缺少这个类
但是,我很不明白,我这是输入输出流呀,为什么还要这样呀?
解决方案 »
- csv文件当中显示日期的问题!!
- 运行JDK1.5 中的例子老报错,请大侠看看 (解决立即给分)
- 急,太奇怪的问题了
- 新手请教
- jdk 有没有带正则表达式的包?晕。apache上的下载不了
- 哪位高人帮忙解释一下这段代码什么意思?
- 几个JAVA基础的小问题,看看你理解如何,另外请教,当String A ="abc"; String B="abc" A 和 B是指向同一块内存吗?
- 请问怎么样把一个字符串读成一个InputStream呢?不用StringBufferInputStream这个类。谢谢,给分!
- 在 applet 初始化的时候连接数据库,但是在JBuilder 中可以连接到,在打开网页的时候不行。为什么??
- JBuilder7 下在source页编辑代码,却发现提示光标错位,怎么回事?
- 急!怎样获取HttpURLConnection服务器回复Connection: close的数据呢?
- 根据ip获取mac地址效率问题
Object o = null;
o = in.readObject(); 这两步可以合并成一步吗:Object o = in.readObject();
你可以改变引用的类型,却不能改变它的实际类型。
首先,我说我的程序
我是用 java awt 开发的一个applet程序
因为我要把 applet 程序中的一个list集合存到服务端,这个list集合中存放的是RoiBean对象实例
我在applet中进行序列化
URL url = new URL(uploadUrl + "&seizKey=" + seizKey);
URLConnection urlcon = url.openConnection();
ObjectOutputStream oos = new ObjectOutputStream(urlcon
.getOutputStream());
oos.writeObject(list);
urlcon.getHeaderField(0);
oos.flush();
oos.close();
然后把序列化对象转化成流的形式提交到服务端在服务端使用
ObjectInputStream oin = new ObjectInputStream(request.getInputStream());
Object vo = null;
try {
vo = oin.readObject(); oin.close();
ObjectOutputStream out =
new ObjectOutputStream(new FileOutputStream(getSeizFile(seizKey)));
out.writeObject(vo);
out.close();
} catch (Exception e) {
e.printStackTrace();
}
来读取这个序列化的流,就是红字部分
既然是“流”的形式存在了,为什么还报这样的错误哦?
而且我的变量o时object类型的呀
请求帮助
表面上任何一个对象都是Object,实际内部却有自己的类型。
当readObject读到类型为RoiBean的对象时,却找不到该RoiBean类
自然报类找不到错误
所以客户端也必须有这个类才可以。就是readObject必须依赖这个类
虽然你声明list是一个List接口,但实际上并不影响他在内存中是一个ArrayList。
同理,你认为对象是Object,但是它实际的类型并不是Object。jvm必须知道这个class的详细信息。