android获取assets内容复制到本地存储

本文介绍了如何在Android项目中创建assets文件夹并将其内容复制到手机内部存储。首先,要确保添加了读写文件的权限。接着,创建assets文件夹,放入需要复制的文件。复制完成后,文件会出现在Android/data/项目包名/files/目录下。文中还提到了一个用于计算文件大小的类,并展示了如何在主文件中调用该功能,以及运行后的效果。源码已上传至CSDN资源库供需要的同学下载。
摘要由CSDN通过智能技术生成

新建的项目,一定要记得添加读写文件的权限啊,不然没有效果的,你不加权限,没有效果请不要找我

 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
      <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> 
      <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

(1)我们首先需要创建assets文件夹,如图所示,在project状态下,鼠标选中main文件夹,右键单击,然后依次选择我们的内容,最后点击确定,assets就创建好了

 

然后我们在assets文件夹下面新建一个文件夹叫folder,把我们需要复制的文件放到此文件夹下面,我们放了三个不同的文件,如图所示:

 

(2)复制assets文件到内部存储中

package com.android.example.assets;

import android.content.Context;
import android.util.Log;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class Utils{

    public static void doCopy(Context context, String assetsPath, String desPath) throws IOException {
        String[] srcFiles = context.getAssets().list(assetsPath);//for directory
        for (String srcFileName : srcFiles) {
            String outFileName = desPath + File.separator + srcFileName;
            String inFileName = assetsPath + File.separator + srcFileName;
            if (assetsPath.equals("")) {// for first time
                inFileName = srcFileName;
            }
            Log.e("tag","========= assets: "+ assetsPath+"  filename: "+srcFileName +" infile: "+inFileName+" outFile: "+outFileName);
            try {
                InputStream inputStream = context.getAssets().open(inFileName);
                copyAndClose(inputStream, new FileOutputStream(outFileName));
            } catch (IOException e) {//if directory fails exception
                e.printStackTrace();
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值