Android – 字典文件。 哪个更快,数据库或直接读取文件?

我正在做一个android字典应用程序。 这个应用程序使用stardict和DICT文件,这往往是相当大的(10MB或更多),只包含纯文本。

当用户查找单词时,我的应用程序将随机读取文件并返回结果。 我读过一些文章,阅读文件是昂贵和缓慢的。 所以我想知道把所有的数据带入数据库是一个更好的解决scheme?

  • Android USB主机通讯
  • Android保存之前旋转图片
  • 如何在Java中以线程安全的方式使用mkdirs?
  • 在Java中写入byte 到File
  • Android ContentProvider和Google IO Rest Talk
  • 可序列化对象的ArrayList的encryption保存和解密加载
  • Android Studio在编译时无法删除文件
  • Android:使用NDK从SD卡上的文件IO
  • 我build议把你的话放到数据库中,原因如下:

    1. 在SQLite上使用SQLite进行数据库查询“足够快”(〜1ms),即使是最不耐烦的用户也是如此
    2. 将大文件读入内存在内存限制的环境(如android)中是一种危险的做法。
    3. 试图从文件“in place”而不是“in memory”中读取条目正在有效地解决SQLite已经为您解决的所有问题。

    使用数据库时遇到的唯一挑战就是用您需要的数据进行初始化。 通过预先创build所需的数据库然后将其附加到您的APK资产,可以最好地解决此问题。 这里有一个很好的例子。

    希望这可以帮助。