Я получаю 360 КБ данных с сервера, который я преобразую в файл XML на моем телефоне. Конечный файл составляет около 1,3 Мб. Позже я пытаюсь прочитать этот файл и на моем GT-S5660, и этот процесс длится 5 (!) Часов. Хотя это дает правильный результат, мне интересно, есть ли способ оптимизировать этот процесс. У меня есть его версия для iPhone, и там процесс завершается менее чем за 5 секунд.
Это нормальное поведение? Если это так, будет ли SQLIte альтернативой?
Вот мой код:
FileInputStream fileos;
try {
fileos = openFileInput("TarifsCache" + Constants.VERSION + ".txt");
} catch (FileNotFoundException e) {
return;
}
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db;
try {
db = dbf.newDocumentBuilder();
} catch (ParserConfigurationException e) {
return;
}
Document doc;
try {
doc = db.parse(new InputSource(fileos));
} catch (SAXException e) {
return;
} catch (IOException e) {
return;
}
doc.getDocumentElement().normalize();
for (int i = 0;; i++) {
NodeList nodeList = doc.getElementsByTagName("Cache" + i);
Node node = nodeList.item(0);
if (node == null)
break;
Element fstElmnt = (Element) node;
NodeList nameList = fstElmnt.getElementsByTagName("area_ref");
Element nameElement = (Element) nameList.item(0);
nameList = nameElement.getChildNodes();
tarifread.area_ref = Integer.parseInt(((Node) nameList.item(0))
.getNodeValue());
сопровождается множеством других поисков элементов.