2012-05-01 6 views
2

У меня есть объект ArrayList Location. ArrayList обычно имеет от 1000 до 10000 объектов местоположения.Как сохранить массив Android Parcelable в файл?

Я хочу, чтобы иметь возможность сохранить ArrayList, а затем прочитать его обратно в позже.

Я предполагаю, что было бы намного быстрее записать все объекты ArrayList местоположения в виде одного файла, а не хранить каждый объект местоположения в SQLiteDB.

Может ли кто-нибудь показать мне пример кода для чтения/записи ArrayList Объекты размещения или предложить лучшее решение?

ответ

0

Вам действительно нужно хранить все 10k-местоположения, удалять их все и хранить каждый новый набор из 10 000 мест каждый раз? Или просто делать некоторые обновления изредка? (например, удалить или добавить несколько строк). Если последнее, чем вы хотите использовать SQLite, так как это будет монументально проще делать эти действия с Db.

Также обратите внимание, что SQLite также является только сохраненным файлом в файловой системе, например, нет сервера БД, например, с MySQL.

Это в стороне, это уже обсуждалось ранее на SO, так что вы можете захотеть взглянуть на эти:

Android data storage - File vs SQLite

Sqlite vs File based data storing?

+0

Каждый набор данных представляет собой фиксированный набор. Нет вставок, удалений, поиска. Мне кажется, что сохранение списка или массива объектов в файл в виде двоичных данных, а затем чтение в виде двоичных данных будет намного быстрее, чем использование SQLite или JSON, которые AFAIK основаны на текстовых файлах. Java имеет ObjectOutputStream и ObjectInputStream для обработки таких ситуаций; но я понимаю, что они полагаются на Serialization, который, как я понимаю, очень медленный в Android. Я надеялся, что в Android есть какой-то эффективный аналог ObjectOutputStream, но, видимо, нет? – Ted

+0

вы должны реализовать Serializable.see this http://stackoverflow.com/questions/7135086/storing-a-parcelable-object-to-a-file-in-android –

+0

Если вы беспокоитесь о скорости, я думаю, что ваш лучший вызов - проверить как решения для типа данных, которые вам нужны, так и сравнить результаты. –