【问题标题】:How to open and read a text file in my /assets directory? [duplicate]如何在我的 /assets 目录中打开和读取文本文件? [复制]
【发布时间】:2016-04-08 22:43:58
【问题描述】:

我花了几个小时阅读我的​​标题查询导致的 stackoverflow 中的各种点击。

使用 Android Studio。

我的 src\main\assets 项目目录中有一个 txt 文件,我想打开和阅读。

我发现的所有示例似乎都使用 AssetManager()getAssets()

我无法使用其中任何一个。

InputStreamReader isr = new InputStreamReader(AssetManager.AssetInputStream("xxx.csv"));

产生错误:AssetManager() 在 AssetManager 中不公开;无法从外部包访问

我需要做什么才能访问我的 /assets 文件夹中的文件,以便打开和阅读它?

编辑将其标记为重复的问题是我已经阅读了关于同一主题的其他帖子,但用户的原始问题(与我相同)从未得到回答!答案是向用户展示如何读取文件。但问题是(和我的一样):无法识别方法。就我而言(请参阅下面关于答案的评论)我得到 error: cannot find symbol method getAssets()

谁能帮我解决这个问题?所有示例都显示了

的示例代码
AssetManager am = getAssets();

但是缺少一些东西。

【问题讨论】:

标签: android assets readfile


【解决方案1】:

你可能想尝试的是使用:

AssetManager am = getAssets();
InputStream is;
is = am.open(pathToFile.txt);

然后使用 byte[] 缓冲区(使用 is.available(); 获取大小)和 is.read(buffer) 看完别忘了is.close()。

如果您不在 Activity 中,则必须使用 context.getAssets() 才能获取 AssetManager。

希望对你有所帮助。

【讨论】:

  • 这就是问题所在。我知道如何打开和读取文件,但我似乎无法使用 AssetManager。当我输入以下行时,“AssetManager am = getAssets();”编译错误是:“错误:找不到符号方法 getAssets()”。我一定错过了一些重要的事情。
  • 解决了!我错过了如果不在 Activity 类中,则必须使用上下文来 getAssets() 的部分。
  • 很好,很高兴你解决了它。我已经为下一个需要它的人编辑了答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-29
  • 2018-04-13
  • 1970-01-01
  • 2018-02-26
  • 1970-01-01
相关资源
最近更新 更多