无法从apk中读取资源文件

时间:2011-07-25 21:47:44

标签: android file-io resources inputstream

我的应用程序包含一些需要阅读的.txt文件。

我曾经使用Inputstream读取它们:

Class c = this.getClass();
   InputStream is = c.getResourceAsStream("/fileName.txt");

出于效率原因,我需要使用RandomAccessFile读取它们。

因为我无法使用c.getResourceAsStream(),所以我需要找到另一种获取文件的方法。

我尝试了以下代码:

Class c = this.getClass();
URL fileURL = c.getResource("/fileName.txt");
File file =new File(fileURL.getPath());

File file =new File(fileURL.toURI());

但无法找到该文件。

我想我缺少一些基本的东西,有人可以帮助我吗?

2 个答案:

答案 0 :(得分:3)

您最初在哪里获得文件?是在原始文件夹,资产文件夹......?

答案 1 :(得分:2)

只是想在此处添加更多细节来解释为什么File file =new File(fileURL.getPath());无法正常工作。应用程序中的所有内容都包含在.akp文件中,该文件只是一个重命名的.zip文件。这意味着当您的应用程序从资源目录请求文件时,该路径上实际上不存在文件。使用InputStream is = this.getAssets().open("fileName.txt");将打开apk并在那里查找。