【问题标题】:Libgdx Searching Text in Json FileLibgdx 在 Json 文件中搜索文本
【发布时间】:2015-01-17 10:09:06
【问题描述】:

我正在使用 libgdx 开发一个文字游戏,并且我有一个单词列表可以在我的游戏中使用。我需要把这个词保留在应用程序中。我不能不使用 SQLite,因为我也希望我的游戏可以在 IOS 上运行。所以我决定使用 Json,并使用下面的代码。在我的 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。在这种情况下,当我使用文本文件时,仍然存在加载时间长和内存问题。我错了吗?
  • 也许,你从文件读取中赢了一点,因为你大部分时间不需要读取整个文件,你赢了存储,因为没有 objectMap,你赢了处理时间,因为没有 JSON 解析,但没有测试,这只是一个假设。您还可以索引整个文件并将索引添加到应用程序

标签: java android json libgdx


【解决方案1】:

您可以只创建一个带有单词的文本文件,例如每行一个,按字母顺序排列。启动应用程序后,您可以读取整个文件,创建一个简单的索引,例如注意以字母“b”开头的单词的起始位置。然后,您可以使用索引跳转到更接近您在文件中查找的单词。您可以改进索引以包含更多字母,但每个字母都会产生内存成本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-10
    • 2014-08-30
    • 1970-01-01
    • 1970-01-01
    • 2021-12-28
    • 2017-07-14
    • 2015-01-30
    相关资源
    最近更新 更多