Когда мое приложение запускается, мне нужно загрузить около 500 объектов со страницы XML, например:
<object>
<name>objectname</name>
<info>info</info>
<info2>info</info2>
<info3>info</info3>
<info4>info</info4>
<alias>false</alias>
</object>
Теперь я хочу сохранить это на устройстве, надеясь, что чтение будет быстрее. В настоящее время я использую ObjectOutputStream
для записи объектов.
private static void write(ArrayList<MyObject> objects, String fileName, Context context) {
final File cacheDir = context.getCacheDir();
final File objectsFile = new File(cacheDir.getAbsoluteFile() + File.separator + fileName);
FileOutputStream fos = null;
ObjectOutputStream oos = null;
boolean keep = true;
try {
fos = new FileOutputStream(objectsFile);
oos = new ObjectOutputStream(fos);
oos.writeObject(objects);
} catch (Exception e) {
e.printStackTrace();
keep = false;
} finally {
try {
if (oos != null)
oos.close();
if (fos != null)
fos.close();
if (keep == false)
objectsFile.delete();
} catch (Exception e) {
}
}
}
Это не очень быстрое решение, чтение может занять около 10-15 секунд. Я показываю объекты в виде списка, поэтому все объекты необходимо прочитать сразу.
Есть идеи?