【问题标题】:4 MB .txt file in android applicationAndroid 应用程序中的 4 MB .txt 文件
【发布时间】:2010-11-25 21:03:15
【问题描述】:

我有一个非常大的 .txt 文件 (4.2MB),我必须在我的 android 应用程序中访问它。它由以下格式的单词及其定义组成:

word - definition
word2 - definition2

我应该将此文件放在 /assets 文件夹还是 res/raw 中?还是第三点?也许我应该把它放在 SD 卡上,因为它的大小?

我应该如何在代码中获取文件内容? 我已经尝试过 assets 和 res/raw,但文件大小似乎总是问题所在,或者我做错了什么。

【问题讨论】:

  • 文件大小有什么问题吗?你有任何错误吗?什么错误?
  • 没有错误,当我使用更大的文件时它不会加载任何内容。一切都保存在 sqlite 数据库中,所以我在调试这个错误时遇到了一些问题,因为我不确定如何在 android 模拟器上轻松访问 sqlite db 的内容。
  • 将它放在 assets 文件夹中会发生什么(因为它应该在哪里)?你有错误吗?你得到一个空文件吗?相同的代码是否适用于较小的文件?
  • 我遇到了一些 RAM 错误,因为模拟器没有足够的内存。所以我决定在我的手机上运行它,猜想没有那种类型的错误,但它只从 .txt 文件中加载了一小部分行(单词和定义)。 App 类似于 SearchableDictionary 示例,使用 sqlite 进行数据存储。

标签: android


【解决方案1】:

可以为此使用 SQLLite 数据库。

可以在最新的 android SDK 中找到这方面的一个示例。 http://developer.android.com/resources/samples/SearchableDictionary/index.html

【讨论】:

  • 这是终极度假胜地。您可以在运行 zipalign 后创建一个 SQL 数据库并将其与您的应用程序捆绑在一起。
  • 我的应用是基于这个应用的!所以确实我正在使用 sqlite 数据库。唯一的区别是我使用的文件比示例中的文件大。所以我可以重新提出这个问题:如何将 4MB 定义文件与可搜索字典示例应用程序一起使用?
【解决方案2】:

在我看来,将它放在原始文件夹中会更好。 因为放入 SDCard 也会使用户也可以使用它,并且用户可能会搞砸您的数据库。

【讨论】:

  • 为什么你认为将它放在原始文件夹中会比资产更好?我在某处读到原始文件夹文件的限制为 1MB。所以把它放在那里的唯一方法是将文件分成 5 个部分并单独读取,但它也不是这样工作的。
  • 我没有遇到过这样的事情。事实上,我的一位队友在 Raw 文件夹中使用了大约 5 MB 的数据。原始文件夹数据在构建时未压缩或优化,因此您得到的正是您放在那里的数据。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-24
  • 1970-01-01
  • 2015-03-25
  • 1970-01-01
  • 2010-09-30
  • 1970-01-01
相关资源
最近更新 更多