在Android中缓存数据的最佳方法

Gre*_*tin 24 android

我有一个ArrayList自定义的简单Serializable对象,我想缓存到磁盘并重新启动时读取.我的数据很小,大约有25个对象,最多有5个列表,所以我认为SQLite会有点过分.在我将使用的iPhone世界中NSKeyedArchiver,NSKeyedUnarchiver哪个效果很好.在Android上,我试图用a FileOutputStream和for来做这个,ObjectOutputStream虽然结果是相同的,但性能很糟糕.是否有更好的(更快阅读)方式将小对象缓存到Android中的文件系统?

Bos*_*one 19

为了它的价值,我使用BufferedWriter/BufferedReader将我的一些String数据缓存到磁盘,而且速度非常快.事实上,它比将相同数据存储到SharedPreferences更快.代码就像这样(注意当你提供缓冲区大小时事情发生得更快)

final BufferedWriter out = new BufferedWriter(new FileWriter(file), 1024);
out.write(stuff);
out.close();
Run Code Online (Sandbox Code Playgroud)

  • 是的,问题是我希望“东西”成为我的序列化对象,无论出于何种原因,这似乎都是问题所在。 (2认同)