关闭

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

标签: androidandroid开发文件操作
3947人阅读 评论(2) 收藏 举报
分类:

我们在做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卡里面的路径,使用方法想当简单,有兴趣的小伙伴可以试试看。。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:66366次
    • 积分:1017
    • 等级:
    • 排名:千里之外
    • 原创:37篇
    • 转载:3篇
    • 译文:0篇
    • 评论:11条
    文章分类
    最新评论