亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

Android實現復制Assets文件到SD卡

2019-10-21 21:32:15
字體:
來源:轉載
供稿:網友

Assets文件介紹

assets文件夾里面的文件都是保持原始的文件格式,需要用AssetManager以字節流的形式讀取文件。 

1. 先在Activity里面調用getAssets() 來獲取AssetManager引用。 
2. 再用AssetManager的open(String fileName, int accessMode) 方法則指定讀取的文件以及訪問模式就能得到輸入流InputStream。 
3. 然后就是用已經open file 的inputStream讀取文件,讀取完成后記得inputStream.close() 。 
4. 調用AssetManager.close() 關閉AssetManager。

封裝類

代碼遵循單例模式,例如:

import android.content.Context;import android.os.Environment;import android.os.Handler;import android.os.Looper;import android.os.Message;import java.io.File;import java.io.FileOutputStream;import java.io.InputStream;/** * Created by shenhua on 1/17/2017. * Email shenhuanet@126.com */public class FileUtils { private static FileUtils instance; private static final int SUCCESS = 1; private static final int FAILED = 0; private Context context; private FileOperateCallback callback; private volatile boolean isSuccess; private String errorStr; public static FileUtils getInstance(Context context) {  if (instance == null)   instance = new FileUtils(context);  return instance; } private FileUtils(Context context) {  this.context = context; } private Handler handler = new Handler(Looper.getMainLooper()) {  @Override  public void handleMessage(Message msg) {   super.handleMessage(msg);   if (callback != null) {    if (msg.what == SUCCESS) {     callback.onSuccess();    }    if (msg.what == FAILED) {     callback.onFailed(msg.obj.toString());    }   }  } }; public FileUtils copyAssetsToSD(final String srcPath, final String sdPath) {  new Thread(new Runnable() {   @Override   public void run() {    copyAssetsToDst(context, srcPath, sdPath);    if (isSuccess)     handler.obtainMessage(SUCCESS).sendToTarget();    else     handler.obtainMessage(FAILED, errorStr).sendToTarget();   }  }).start();  return this; } public void setFileOperateCallback(FileOperateCallback callback) {  this.callback = callback; } private void copyAssetsToDst(Context context, String srcPath, String dstPath) {  try {   String fileNames[] = context.getAssets().list(srcPath);   if (fileNames.length > 0) {    File file = new File(Environment.getExternalStorageDirectory(), dstPath);    if (!file.exists()) file.mkdirs();    for (String fileName : fileNames) {     if (!srcPath.equals("")) { // assets 文件夾下的目錄      copyAssetsToDst(context, srcPath + File.separator + fileName, dstPath + File.separator + fileName);     } else { // assets 文件夾      copyAssetsToDst(context, fileName, dstPath + File.separator + fileName);     }    }   } else {    File outFile = new File(Environment.getExternalStorageDirectory(), dstPath);    InputStream is = context.getAssets().open(srcPath);    FileOutputStream fos = new FileOutputStream(outFile);    byte[] buffer = new byte[1024];    int byteCount;    while ((byteCount = is.read(buffer)) != -1) {     fos.write(buffer, 0, byteCount);    }    fos.flush();    is.close();    fos.close();   }   isSuccess = true;  } catch (Exception e) {   e.printStackTrace();   errorStr = e.getMessage();   isSuccess = false;  } } public interface FileOperateCallback {  void onSuccess();  void onFailed(String error); }}

調用代碼

如果你需要將如圖所示的apks下的文件復制到SD卡的app/apks目錄下,則這樣調用:

Android,復制,Assets,SD卡

FileUtils.getInstance(Context context).copyAssetsToSD("apks","app/apks");

###如果你需要收到文件復制完成的時的回調,則使用如下代碼:

FileUtils.getInstance(Context context).copyAssetsToSD("apks","app/apks").setFileOperateCallback(new FileUtils.FileOperateCallback() { @Override  public void onSuccess() {  // TODO: 文件復制成功時,主線程回調   }   @Override   public void onFailed(String error) {    // TODO: 文件復制失敗時,主線程回調   }  });

代碼說明

在上面代碼中,通過單例模式傳入一個context獲得FileUtils實例,通過實例去調用copyAssetsToSD()方法,方法參數:

  • String srcPath 傳入assets文件夾下的某個文件夾名,如上述apks,可傳入為空”“字符,則復制到SD后,默認將assets文件夾下所有文件復制;
  • String sdPath 傳入你希望將文件復制到的位置,如SD卡下的“abc”文件夾,則傳入”abc”

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
www高清在线视频日韩欧美| 欧美一性一乱一交一视频| 亚洲精品免费一区二区三区| 性色av一区二区三区在线观看| 亚洲日本欧美日韩高观看| 日韩精品在线看| 亚洲乱码国产乱码精品精天堂| 亚洲欧美中文日韩在线v日本| 日韩电影中文字幕| 欧美丰满老妇厨房牲生活| 亚洲欧美日韩精品久久| 在线日韩精品视频| 日韩在线观看成人| 日韩免费电影在线观看| 性欧美亚洲xxxx乳在线观看| 在线看国产精品| 精品无人国产偷自产在线| 国产精品久久久av久久久| 国产精品第3页| 久久精品久久久久| 精品久久久久久中文字幕大豆网| 欧美日韩免费区域视频在线观看| 久久久av亚洲男天堂| 亚洲欧美日韩中文在线| 欧美一级大片视频| 中文字幕自拍vr一区二区三区| 久久国产一区二区三区| 国产精品久久久久久婷婷天堂| 九九热精品在线| 亚洲精品99久久久久| 国产日韩欧美在线看| 成人福利免费观看| 影音先锋欧美在线资源| 久久亚洲精品网站| 久久久噜噜噜久久| 最好看的2019年中文视频| 日韩av在线网页| 91av在线不卡| 欧洲日本亚洲国产区| 色综合伊人色综合网站| 久久久国产一区二区| 久久久亚洲天堂| 91精品国产高清久久久久久久久| 久久国产精品首页| 亚洲剧情一区二区| 91日本在线视频| 亚洲成人亚洲激情| 91九色单男在线观看| 久久亚洲综合国产精品99麻豆精品福利| 免费99精品国产自在在线| 视频一区视频二区国产精品| 欧美人与性动交a欧美精品| 日韩美女中文字幕| 亚洲性无码av在线| 亚洲欧美一区二区精品久久久| 国产亚洲精品一区二区| 久久精品色欧美aⅴ一区二区| 亚洲精品97久久| 国产免费一区视频观看免费| 亚洲一区二区国产| 亚洲精品久久久久| 日韩电影免费在线观看中文字幕| 精品国产福利视频| 最近2019中文免费高清视频观看www99| 欧美激情啊啊啊| 国内精品模特av私拍在线观看| 97在线视频免费| 精品中文字幕久久久久久| 97激碰免费视频| 久久久精品美女| 日韩欧美一区二区三区| 欧美乱大交做爰xxxⅹ性3| 久久69精品久久久久久国产越南| 欧美日韩亚洲一区二区三区| 国产精品久久9| 91久久久久久久久| 欧美重口另类videos人妖| 日本91av在线播放| 国产成人亚洲综合91精品| 国产69精品99久久久久久宅男| 亚洲成人国产精品| 日韩av片永久免费网站| 91极品女神在线| 亚洲美女中文字幕| 亚洲精品国产美女| 97在线视频一区| 在线电影av不卡网址| 亚洲第一视频网| 亚洲日本欧美中文幕| 成人动漫网站在线观看| 亚洲午夜久久久久久久| 久久久久久国产精品久久| 亚洲精品国精品久久99热一| 亚洲自拍偷拍一区| 在线播放亚洲激情| 欧美视频不卡中文| 狠狠操狠狠色综合网| 国产精品极品在线| 久久久久久久久久久久久久久久久久av| 久久99青青精品免费观看| 国产丝袜一区二区三区| 国语自产精品视频在线看抢先版图片| 欧美极品少妇xxxxⅹ免费视频| 国产欧美日韩亚洲精品| 欧美性猛交xxxxx免费看| 在线成人中文字幕| 精品香蕉在线观看视频一| 国产成人精品综合久久久| 97精品国产97久久久久久春色| 欧美亚洲午夜视频在线观看| 亚洲欧美国产va在线影院| 国产成人精品免高潮费视频| 国产精品极品尤物在线观看| 日本韩国欧美精品大片卡二| 亚洲人成在线免费观看| 国产精品吊钟奶在线| 日韩av电影中文字幕| 欧美成人午夜免费视在线看片| 精品久久久久久中文字幕大豆网| 久久精品99国产精品酒店日本| 亚洲精品美女免费| 久久精品国产69国产精品亚洲| 国产精品18久久久久久首页狼| 国产精品9999| 亚洲欧美日韩中文在线| 国产精品久久久久久久久久小说| 国产精品91久久久| 91国产在线精品| 亚洲精品一区在线观看香蕉| 久久久久久一区二区三区| 伊人久久久久久久久久| 欧美裸体视频网站| 欧美在线视频网| 国产91网红主播在线观看| 在线精品国产成人综合| 亚洲jizzjizz日本少妇| 久久久久久久久久av| 国产有码一区二区| 久久香蕉国产线看观看网| 久久天天躁狠狠躁夜夜躁2014| 中文字幕精品网| 伊人久久久久久久久久久久久| 精品国产成人av| 欧美夫妻性视频| 欧美日韩亚洲精品一区二区三区| 国内精品一区二区三区四区| 久久久黄色av| 国产精品视频网站| 狠狠色狠狠色综合日日五| 国产成人综合精品在线| 久久久久久久爱| 蜜臀久久99精品久久久无需会员| 久久久久久久久久久亚洲| 日本韩国欧美精品大片卡二| 亚洲视频第一页| 日韩在线观看成人| 91麻豆桃色免费看| 中文字幕国产亚洲2019| 亚洲欧洲午夜一线一品| 在线观看视频99| 国产精品自产拍在线观| 97在线免费观看| 国产精品美女在线观看| 精品久久久久久中文字幕一区奶水|