Хранить несколько значений в файле - лучший формат? - PullRequest
0 голосов
/ 08 октября 2018

Я хочу сохранить несколько значений (String, Int и Date) в файле через Java в Android Studio.У меня нет такого большого опыта в этой области, поэтому я попытался немного погуглить, но у меня не было решения, которое я искал.Итак, может быть, вы можете порекомендовать мне что-нибудь?

Что я пробовал до сих пор:

  • Android предлагает функцию SharedPreferences, которая позволяет пользователю сохранять примитивное значениеза ключ.Но у меня есть несколько значений ключа, поэтому у меня это не сработает.

  • Другой вариант - сохранение данных на внешнем носителе в виде файла.Насколько хорошо.Но я хочу, чтобы размер файла был минимальным, а файл загружался как можно быстрее.Это место, где я не могу опередить.Если я сохраню все значения в виде простого текста, мне нужно будет проанализировать файл .txt для каждой руки, чтобы загрузить данные, для которых потребуется несколько записей.

Есть ли возможностьэффективно сохранить несколько записей с несколькими значениями для определенного ключа?

Ответы [ 2 ]

0 голосов
/ 08 октября 2018

Вы не разглашаете достаточно деталей о вашей структуре данных или объеме, поэтому сложно дать конкретное решение.

Вообще говоря, у вас есть эти три варианта.

Сериализация коллекции

У меня есть несколько значений для ключа

Вы можете использовать Map с List или Setкак его ценность.Это обсуждалось бесчисленное количество раз по переполнению стека.

Затем используйте сериализацию для записи и чтения в хранилище.

Текстовый файл

Запись текстового файла.

При необходимости используйте формат с разделителями табуляции или CSV.Для этого я предлагаю использовать библиотеку Apache Commons CSV.

База данных

Если у вас много данных или проблемы параллелизма с несколькими потоками, используйте базу данных, такую ​​как H2 Database Engine.

0 голосов
/ 08 октября 2018

Не нужно изобретать велосипед.Скорее всего, лучшим вариантом для вашего случая является использование баз данных.Посмотрите на Sqlite или Realm .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...