Я разрабатываю слово-игру с libgdx, и у меня есть список слов для использования в моей игре. Мне нужно сохранить эти слова в приложении. Я не могу использовать SQLite, потому что я также хочу, чтобы моя игра работала на IOS. Поэтому я решил использовать Json, и я использовал код ниже. В моем json-файле есть сто тысяч слов.Libgdx Поиск текста в файле Json
FileHandle file = Gdx.files.internal("data/word.json");
Json json = new Json();
ObjectMap<String, Data> dataMap = json.fromJson(ObjectMap.class, file);
Но загрузка занимает слишком много времени и потребляет слишком много памяти естественным образом. Я хочу только получить случайное слово из файла Json, и поиск слова существует в Json-файле. Неправильно загружать весь файл только для этих двух простых операций.
Какая для них лучшая реализация? Является ли только вариант Json в моей ситуации?
Заранее спасибо.
Возможно, вам стоит подумать о другом хранилище (что-то вроде текстового файла, одного слова за строкой, фиксированного количества строк) и использовать это. –
@RC. В этом случае, когда я использую текстовый файл, долгое время загрузки и проблема памяти будут существовать. Я ошибаюсь? – PepeDeLew
Возможно, вы немного выиграли от чтения файла, потому что вам не нужно читать весь файл большую часть времени, вы выигрываете на хранилище, потому что нет объектной карты, и вы выигрываете на время обработки, потому что нет разбора JSON, но без тестов, это всего лишь гипотеза. Вы также можете проиндексировать весь файл и добавить индекс в приложение –