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){}

如果我直接在“要写的内容”部分中键入包名称,则会显示错误。请给出一些想法。

4

2 回答 2

2

假设您要动态检索原始资源的 id,以下代码片段将很有用:

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

并且您的 DataInputStream 对象应该这样构造:

DataInputStream dataIO= new DataInputStream(getResources().openRawResource(id));
于 2012-10-31T08:53:00.830 回答
0

完全限定的资源名称的格式为“package:type/entry”,您的代码中缺少该名称。我使用下面的代码来访问原始资源。

getResources().getIdentifier("package:type/entry", null, null);

于 2012-10-31T08:54:04.183 回答