Android-获取Assets目录的资源

Android上获取Assets目录资源的方法。

Android项目的Assets目录下的资源文件,会被直接拷贝到手机上,而不会在R.java中有id,但是,Android中没有提供直接获取Assets目录下资源文件路径的接口,只提供了获取文件流的接口,所以需要将其通过文件流先拷贝到其他目录下,再获取该目录的文件路径。

public String getAssetsCacheFile(Context context,String fileName)   {
    File cacheFile = new File(context.getCacheDir(), fileName);
    try {
        InputStream inputStream = context.getAssets().open(fileName);
        try {
            FileOutputStream outputStream = new FileOutputStream(cacheFile);
            try {
                byte[] buf = new byte[1024];
                int len;
                while ((len = inputStream.read(buf)) > 0) {
                    outputStream.write(buf, 0, len);
                }
            } finally {
                outputStream.close();
            }
        } finally {
            inputStream.close();
        }
    } catch (IOException e) {
       e.printStackTrace();
    }
    return cacheFile.getAbsolutePath();
}