哪位高人把ObjectInputStream的readObject的工作原理详细说明一下 如题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我的理解是,在writeObject的时候,是把对象的引用内存的信息按二进制方式(也就是byte数组)输出到某个输出流,而readObject的时候,首先取到输入流的内容,也是一个二进制的byte数组,然后根据一些算法(比如第几个字节到第几个字节代表对象的类,第几个到第几个代表某个属性的内容等等),得到相应的信息后系统自动生成一个实例,然后分别去设置每个属性,最后以Object对象返回。大概就是这样吧。 ObjectInputStream 对以前使用 ObjectOutputStream 写入的基本数据和对象进行反序列化。 ObjectOutputStream 和 ObjectInputStream 分别与 FileOutputStream 和 FileInputStream 一起使用时,可以为应用程序提供对对象图形的持久性存储。ObjectInputStream 用于恢复那些以前序列化的对象。其他用途包括使用套接字流在主机之间传递对象,或者用于编组和解组远程通信系统中的实参和形参。 ObjectInputStream 确保从流创建的图形中所有对象的类型与 Java 虚拟机中的显示的类相匹配。使用标准机制按需加载类。例子:readObject是从ObjectIputStream中读取对象。try { // resouces : vector instance and test.txt file Vector vec = new Vector(); vec.add("a"); vec.add("b"); vec.add("c"); File file = new File("d:\\1.txt"); if (file.exists()) { file.delete(); } // write vector instance to test.txt FileOutputStream fos = new FileOutputStream(file); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(vec); // read vector instance from test.txt FileInputStream fis = new FileInputStream(file); ObjectInputStream ois = new ObjectInputStream(fis); System.out.println((Vector) ois.readObject()); } catch (Exception e) { e.printStackTrace(); } 那readObject在读取数据时是怎么读得呢,是一个字节一个字节的读吗?我想为它添加一个进度条,不知道如何判断进度 请问,在readObject过程中,抛出IO异常是什么愿意导致的呢? 关于用ServerSocket发数据给客户端的问题 java如何操作Excel的格式,如页边距? 新手两个小问题 JDK安装一直错误,~~~~~~~~~~~~ 关于链接传值的问题!!up有分!! 关于抛出的Exceptions 我哪里出错了?高手指点一下好吧,我是菜鸟 timer 如何实现在完成某个操作后,间隔固定时间发出请求,当收到请求时,程序运行结束? 初学者问问题,,请各位帮帮忙啊。 生成随机数的问题。 JAVA基础题 关于《Thinking in Java》第四版的问题。
例子:
readObject是从ObjectIputStream中读取对象。try {
// resouces : vector instance and test.txt file
Vector vec = new Vector();
vec.add("a");
vec.add("b");
vec.add("c");
File file = new File("d:\\1.txt");
if (file.exists()) {
file.delete();
} // write vector instance to test.txt
FileOutputStream fos = new FileOutputStream(file);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(vec); // read vector instance from test.txt
FileInputStream fis = new FileInputStream(file);
ObjectInputStream ois = new ObjectInputStream(fis);
System.out.println((Vector) ois.readObject());
} catch (Exception e) {
e.printStackTrace();
}
我想为它添加一个进度条,不知道如何判断进度