android:将assets目录下的文件(文件夹)放置到内存卡指定目录下

最近做一个OCR识别图片文字的功能,闲暇之余,提取项目中涉及的方法供大家参考.
这个方法是将assets下的指定文件或文件夹,放置到sd的指定目录下,代码中都有注释.
当然我们也可以探讨探讨OCR.

	/**
	 * 将assets下的文件放到sd指定目录下
	 * 
	 * @param context
	 *            上下文
	 * @param assetsPath
	 *            assets下的路径
	 * @param sdCardPath
	 *            sd卡的路径
	 */
	public static void putAssetsToSDCard(Context context, String assetsPath,
            String sdCardPath) {
        try {
            String mString[] = context.getAssets().list(assetsPath);
            if (mString.length == 0) { // 说明assetsPath为空,或者assetsPath是一个文件
                InputStream mIs = context.getAssets().open(assetsPath); // 读取流
                byte[] mByte = new byte[1024];
                int bt = 0;
                File file = new File(sdCardPath + File.separator
                        + assetsPath.substring(assetsPath.lastIndexOf('/')));
                if (!file.exists()){
                    file.createNewFile(); // 创建文件
                }else{
                    return;//已经存在直接退出
                }
                    FileOutputStream fos = new FileOutputStream(file); // 写入流
                    while ((bt = mIs.read(mByte)) != -1) { // assets为文件,从文件中读取流
                        fos.write(mByte, 0, bt);// 写入流到文件中
                    }
                    fos.flush();// 刷新缓冲区
                    mIs.close();// 关闭读取流
                    fos.close();// 关闭写入流
                }
            } else { // 当mString长度大于0,说明其为文件夹
                sdCardPath = sdCardPath + File.separator + assetsPath;
                File file = new File(sdCardPath);
                if (!file.exists())
                    file.mkdirs(); // 在sd下创建目录
                for (String stringFile : mString) { // 进行递归
                    putAssetsToSDCard(context, assetsPath + File.separator
                            + stringFile, sdCardPath);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值