一个关于从文件中读取对象的问题
假如有一个实现了序列化的类a,a中有3个属性b,c,d,同时b,c,d也都是对象,现在我把a存入文件,请问我想只读出d,可以做到吗? --------------------编程问答--------------------请问,你把a存入文件,是以什么方式或者说以什么样的数据格式保存对象a的信息到文件? --------------------编程问答--------------------
不好意思我没太懂,就是用java.io里面的ObjectOutputStream的writeObject方法 --------------------编程问答-------------------- 显示声明序列号
只保留一个属性d可以不 没有试过这个!!! --------------------编程问答-------------------- 使用transient关键字
--------------------编程问答-------------------- 自己分析文件,然后找出b的文件偏移,读出反序列化即可 --------------------编程问答-------------------- 纠结什么 其他的不要 你不要读就好了啊 或者其他的不要你就干脆不要写入文件不就好了 --------------------编程问答-------------------- 不想被实例化的属性前面加transient关键字 --------------------编程问答--------------------
public class a implements Serializable {
private static final long serialVersionUID = -7490654452791933426L;
private transient ObjectB b;
private transient ObjectC c;
private ObjectD d;
}
使用transient关键字
public class a implements Serializable {
private static final long serialVersionUID = -7490654452791933426L;
private transient ObjectB b;
private transient ObjectC c;
private ObjectD d;
}
自己分析文件,然后找出b的文件偏移,读出反序列化即可
没有那么麻烦,4楼的方法就可以了。如果楼主连a都不想要,只需要执行2次ObjectInputStream的readObject方法就行了,第一次读的是a,第二次读的是d。 --------------------编程问答-------------------- 先弄懂什么是“序列化”
补充:Java , Java SE