我有一堆对象存储在几个文件中,我需要在我的应用程序启动时加载到内存中,我是这样做的:
FileInputStream fis = null;
ObjectInputStream ois = null;
Object result = null;
try {
fis = new FileInputStream(inFile);
ois = new ObjectInputStream(fis);
result = ois.readObject();
//and then do something with result
问题是,当我尝试加载大小超过 500k 的对象 ( HashMap<Integer, int[]>
) 时,它会在我的手机上花费很长时间。我不确定这是否是 ObjectInputStream 的问题,如果是,是否还有其他更快的方法来存储和检索文件中的对象?越快越好,非常感谢。
最佳答案
你可以使用 Protocol Buffers或 Android 的原生序列化:Parcel .
更新:
为什么要在一个文件中存储这么多对象并同时将它们全部加载到内存中?正如您发现的那样,它需要很长时间并且会占用大量内存。您有什么特殊原因需要这个吗?
您应该使用数据库 - 它可以让您有选择地查询数据并仅在特定时间加载您需要的对象。
关于java - 安卓/java : use something else rather then ObjectInputStream to load an object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6043299/