水煮蜗牛

走一步,再走一步。

Android复制asset目录的文件到SD卡下

我们在做android开发的时候,有时候会需要把asset目录的文件复制到SD卡里,然后直接从SD卡里面读取文件,资源文件放到SD卡里面后读取起来就很方便,不像在asset文件夹里面必须通过文件流的方式进行读取,在这里我把我用到的asset复制到SD卡目录的代码分享一下,希望能够帮助有需要的小伙伴,代码如下。。。

/**
    * 复制asset文件到指定目录
     * @param oldPath  asset下的路径
     * @param newPath  SD卡下保存路径
     */
public static void CopyAssets(Context context, String oldPath, String newPath) {
    try {
    String fileNames[] = context.getAssets().list(oldPath);// 获取assets目录下的所有文件及目录名
    if (fileNames.length > 0) {// 如果是目录
        File file = new File(newPath);
        file.mkdirs();// 如果文件夹不存在,则递归
        for (String fileName : fileNames) {
            CopyAssets(context, oldPath + "/" + fileName, newPath + "/" + fileName);
        }
    } else {// 如果是文件
        InputStream is = context.getAssets().open(oldPath);
        FileOutputStream fos = new FileOutputStream(new File(newPath));
        byte[] buffer = new byte[1024];
            int byteCount = 0;
            while ((byteCount = is.read(buffer)) != -1) {// 循环从输入流读取
                                                            // buffer字节
                fos.write(buffer, 0, byteCount);// 将读取的输入流写入到输出流
            }
            fos.flush();// 刷新缓冲区
            is.close();
            fos.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

该方法需要传入3个参数,第一个参数为上下文对象,第二个参数为文件在asset文件夹下面的路径,第三个参数是复制到SD卡里面的路径,使用方法想当简单,有兴趣的小伙伴可以试试看。。

阅读更多
个人分类: android
上一篇使用JDK的MessageDigest类进行加密
下一篇使用JDK自带的方法进行文件压缩
想对作者说点什么? 我来说一句

复制Raw和Assets的文件Sdcard/Dcim

2017年11月29日 1.46MB 下载

没有更多推荐了,返回首页

关闭
关闭