复制文件(影像)的CacheDir到SD卡 [英] Copy file (image) from CacheDir to SD Card

查看:136
本文介绍了复制文件(影像)的CacheDir到SD卡的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我希望能够以移动或从Android设备的内部缓存中复制文件,并把这个插入SD卡永久存储。这是我到目前为止有:

 公共无效onClickSaveSecret(视图v){

    文件图像=新的文件(getApplication()getCacheDir()+/image.png。);
    文件newImage =新的文件(Environment.getExternalStorageDirectory()+/image.png);

    Toast.makeText(这一点,图像保存,100).show();

}
 

解决方案

  / **
 *从源到目标复制文件
 *
 * @参数src源
 * @参数DST目的地
 * @throws java.io.IOException异常情况下的任何问题
 * /
无效的CopyFile(SRC文件,文件DST)抛出IOException异常{
    FileChannel随路=新的FileInputStream(SRC).getChannel();
    FileChannel outChannel =新的FileOutputStream(DST).getChannel();
    尝试 {
        inChannel.transferTo(0,inChannel.size(),outChannel);
    } 最后 {
        如果(随路!= NULL)
            inChannel.close();
        如果(outChannel!= NULL)
            outChannel.close();
    }
}
 

I want to be able to either move or copy a file from the internal Cache of an android device and put this into permanent storage on the SD Card. This is what I have so far:

public void onClickSaveSecret(View v){

    File image = new File(getApplication().getCacheDir() + "/image.png");
    File newImage = new File(Environment.getExternalStorageDirectory() + "/image.png");

    Toast.makeText(this, "Image Saved", 100).show();

}

解决方案

/**
 * copy file from source to destination
 *
 * @param src source
 * @param dst destination
 * @throws java.io.IOException in case of any problems
 */
void copyFile(File src, File dst) throws IOException {
    FileChannel inChannel = new FileInputStream(src).getChannel();
    FileChannel outChannel = new FileOutputStream(dst).getChannel();
    try {
        inChannel.transferTo(0, inChannel.size(), outChannel);
    } finally {
        if (inChannel != null)
            inChannel.close();
        if (outChannel != null)
            outChannel.close();
    }
}

这篇关于复制文件(影像)的CacheDir到SD卡的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆