[jdk文档]
ObjectInputStream 对以前使用 ObjectOutputStream 写入的基本数据和对象进行反序列化。
[jdk文档]
从上面可以看到是对基本数据类型序列化和反序列化,String及数组等不是基本数据类型
[jdk文档]
在 Java 中,字符串和数组都是对象,所以在序列化期间将其视为对象。读取时,需要将其强制转换为期望的类型。
readObject 方法负责使用通过对应的 writeObject 方法写入流的数据,为特定类读取和恢复对象的状态。该方法本身的状态,不管是属于其超类还是属于其子类,都没有关系。恢复状态的方法是,从个别字段的 ObjectInputStream 读取数据并将其分配给对象的适当字段。DataInput 支持读取基本数据类型。
尝试读取由对应的 writeObject 方法写入的超出自定义数据边界的对象数据将导致抛出 OptionalDataException(eof 字段值为 true)。超出已分配数据末尾的非对象读取以指示流末尾的方式反映数据结束:按位读取与字节读取或字节数读取一样,将返回 -1,基元读取将抛出 EOFException。
[jdk文档]
读取对象类似于运行新对象的构造方法。为对象分配内存并将其初始化为零 (NULL)。为不可序列化类调用无参数构造方法,然后从以最接近 java.lang.object 的可序列化类开始和以对象的最特定类结束的流恢复可序列化类的字段。
从上面看,反序列化时读出的数据皆为基本数据类型,然后可能要自己重新组合成为你要的MyObject类型,如
String name = (String)ois.readObject()
int age = (int)ois.readInt()
MyObject mo = new MyObject()
mo.setName(name)
mo.setAge(age)
我的理解不知道对不对
看楼主的数据库在哪了,要是android自带的数据库中访问,直接写查询语句就行,要是访问服务器上的数据库,可以查一下android客户端与服务器的通信,可以写个webservice,然后再客户端调用,或者使用HTTP协议或者TCP协议获取。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)