【问题标题】:What is the best approach to open a TXT file from assets and read a string?从资产中打开 TXT 文件并读取字符串的最佳方法是什么?
【发布时间】:2012-10-10 05:12:30
【问题描述】:

我需要检查资产文件夹中是否存在一个txt文件,如果存在我需要读取它的文本并放入一个字符串中。

我在 Google 上看到了一些从资产中打开文件的方法,但我找不到一种方法可以让您检查文件是否存在,然后从中读取字符串(因为是文本资源)。

【问题讨论】:

  • 资产捆绑到apk中,文件怎么可能不存在?我错过了什么吗?
  • 文件不存在,因为这些应用是使用应用生成器自动生成的,有时不能包含文件。

标签: android inputstream assets


【解决方案1】:

简而言之,您必须已经假设知道该文件是否存在于 assets 中。因为一旦您构建了 .apk 文件,assets 文件夹就会被文件打包,并且永远无法更改。

因此,验证文件是否存在是相当蹩脚的。它只会包含您自己添加的那些文件。

此外,如果您想使用R 文件来帮助您找到文件名,那么只需将您的文件放在一个名为raw 的文件夹中。它是 assets 的替代品,但保存在此文件夹中的文件在 R 类文件中引用 - 使其更容易获取资源。

【讨论】:

  • 文件不能存在,因为这些应用程序是使用应用程序生成器自动生成的,有时不能包含文件。此答案必须删除
  • “这些应用是通过应用生成器自动生成的”这是什么意思?
  • 我正在编写一个应用程序生成器,它将接收其他用户创建的资产文件夹。请停止这个并删除这个答案
  • 首先,您需要修改您对资产的概念,然后考虑它是否真的需要被否决。自己阅读developer.android.com/reference/android/content/res/…
【解决方案2】:

当找不到文件时,您可以像这样正确处理异常:

try {

    InputStream is = SplashscreenActivity.this.getAssets().open("yourTextFile.txt");

} catch (IOException e) {
    // catch your exception properly when the file isn't found
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-24
    • 1970-01-01
    • 2010-09-09
    • 1970-01-01
    • 1970-01-01
    • 2016-01-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多