В настоящее время я создаю приложение для Android и решил использовать Xml-реализацию, а не базу данных для хранения данных. Я загружаю xml-файл в список при запуске приложения, и когда я хочу его сохранить, я отформатирую его в xml с помощью XmlSerializer, который затем выводит на StringWriter. Затем я вызываю .toString() в объекте StringWriter и записываю эту строку обратно в файл.Может случиться так, что XmlSerializer возвращает строку, которая слишком длинна, чтобы быть строкой в Java?
Я заметил, однако, что приложения xml-файлов растут довольно быстро и задаются вопросом, что произойдет, если длина превысит максимальную длину строки. Есть ли способ получить массив строк из StringWriter? Вот мой метод Serializer.
public String articlesAsXml() {
XmlSerializer serializer = Xml.newSerializer();
StringWriter writer = new StringWriter();
try {
serializer.setOutput(writer);
serializer.startDocument("UTF-8", true);
serializer.startTag("", "articles");
for (Articles art: AllArticles){
serializer.startTag("", "art");
serializer.startTag("", "id");
serializer.text(art.Article_Id);
serializer.endTag("", "id");
serializer.startTag("", "title");
serializer.text(art.Article_Title);
serializer.endTag("", "title");
serializer.startTag("", "body");
serializer.text(art.Article_Body);
serializer.endTag("", "body");
serializer.endTag("", "art");
}
serializer.endTag("", "articles");
serializer.endDocument();
return writer.toString();
}
catch (Exception e) { return "Failed"; }
return null;
}
Заранее спасибо
Не уверен, что если бы вы приветствовать критику по дизайну, но если вы беспокоитесь о размере XML, превышающей максимальную длину строки, вы должны представить себе, что производительность приложения в течение долгого времени значительно ухудшится. Имея в виду синтаксический анализ/использование памяти, вы быстро столкнетесь с проблемами. Я бы подумал об использовании базы данных или, по крайней мере, разделил XML на несколько файлов. Что касается вашего вопроса, это может дать некоторое понимание http://stackoverflow.com/questions/816142/strings-maximum-length-in-java-calling-length-method –
Да, конечно, я приветствую критику. Я здесь, чтобы учиться. Моя единственная проблема в том, что я не знал об этой проблеме раньше, поэтому я построил все свое приложение, опираясь на эту систему, потому что он должен загружать другие вещи в сторону от статей. Большое спасибо за ваш ответ :) Так что я думаю, что лучший способ переместить - это реализовать решение Natixs для первой версии моего приложения, а затем начать работу с базой данных для других версий. – Scottyers