2012-10-31 37 views
1

我试图找回从原始文件夹动态代码的文件,如下没有得到包名

try{ 
     DataInputStream dataIO= new DataInputStream(getResources().getIdentifier("raw/"+chapter, null ,<what to write>); 
     String strLine= null; 
     while((strLine = dataIO.readLine())!=null){ 
      buffer.append(strLine); 
      buffer.append("\n"); 
     } 
     dataIO.close(); 
    }catch(Exception e){} 

如果我键入“写什么”部分直接在包的名称,它显示错误。请给出一些想法。

+1

什么错误?显示堆栈跟踪 –

+0

我的意思是语法错误。我的软件包名称是com.expandableList。如果我在包区域中写入“com.expandableList”。它显示红色下划线。 – test1990bdvt

回答

2

假设要动态获取原始资源的ID,下面的代码片段将是有益的:

int id = getResources().getIdentifier(chapter, "raw", getPackageName()); 

和您的DataInputStream类对象应该这样构成的:

DataInputStream dataIO= new DataInputStream(getResources().openRawResource(id)); 
+0

它的工作。谢谢。 – test1990bdvt

+0

我对android很陌生。所以请给我一些关于如何提高技能的建议。是否真的有必要掌握它的核心Java。 – test1990bdvt

+1

那么,掌握Java语言肯定有帮助,但是当你学习新事物时你可以改进。获取一本好书(参考android标签[info](http://stackoverflow.com/tags/android/info)页上的书籍推荐列表),并阅读并尝试本书中提到的内容。 – Rajesh

0

一完全限定资源名称的格式为“package:type/entry”,这在代码中缺少。我使用下面的代码来访问原始资源。 (“package:type/entry”,null,null);这个函数返回的是一个数组,