2015-06-20 28 views

回答

2

ContextWrapperfileList()不會返回res/raw的內容,而是存儲在上下文的應用程序包E.g(/data/data/your.app/)中的文件。要檢索res/raw的內容,您可以使用反射。例如。

public ArrayList<String> listRaw() { 
    ArrayList<String> raw = new ArrayList<>(); 
    Field[] fields = R.raw.class.getFields(); 
    for (int i = 0; i < fields.length; i++) { 
     raw.add(fields[i].getName()); 
    } 
    return raw; 
} 

它會返回一個List<String>res/raw內容。如果你想獲得的ID,你可以使用

getResoruces().getIndentifier(name, "raw", getPackageName()); 

編輯,該文件

private void copyFile() { 
    InputStream in = getResources().openRawResource(R.raw.myresource); 
    FileOutputStream out = openFileOutput("filename", Context.MODE_PRIVATE); 
    byte[] buff = new byte[1024]; 
    int read = 0; 

    try { 
    while ((read = in.read(buff)) > 0) { 
     out.write(buff, 0, read); 
    } 
    } finally { 
     in.close(); 
     out.close(); 
    } 
} 
+0

謝謝你的答案複製!我怎麼能把mu xml放入/data/data/your.app/? – Padmelina

+0

你必須複製它。我會用一個例子更新我的答案 – Blackbelt

+0

我編輯了我的答案。根據您的要求更改它 – Blackbelt