日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

android assets解压,Android assets内压缩文件解压,解压到缓存示例

發(fā)布時間:2025/4/5 Android 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android assets解压,Android assets内压缩文件解压,解压到缓存示例 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.assets內(nèi)壓縮文件解壓AssetsZipUtils,包含一個獲取文件夾下所有文件路徑的方法,方便獲取文件使用

public class AssetsZipUtils {

public static final String TAG = "ZIP";

/**

* 解壓assets目錄下的zip到指定的路徑

* @param zipFileString ZIP的名稱,壓縮包的名稱:xxx.zip

* @param outPathString 要解壓縮路徑

* @throws Exception

*/

public static void UnZipAssetsFolder(Context context, String zipFileString, String

outPathString) throws Exception {

Log.d("文件路徑", context.getAssets().open(zipFileString).toString());

ZipInputStream inPutZip = new ZipInputStream(context.getAssets().open(zipFileString));

ZipEntry zipEntry;

String szName = "";

while ((zipEntry = inPutZip.getNextEntry()) != null) {

Log.d("判斷文件是否存在",zipEntry.isDirectory()+"");

szName = zipEntry.getName();

if (zipEntry.isDirectory()) {

szName = szName.substring(0, szName.length() - 1);

File folder = new File(outPathString + File.separator + szName);

//目前判斷條件,如果包含解壓過的文件就不再解壓

if(!folder.exists()){

folder.mkdirs();

}else{

return;

}

} else {

Log.e(TAG, outPathString + File.separator + szName);

File file = new File(outPathString + File.separator + szName);

if (!file.exists()) {

Log.e(TAG, "Create the file:" + outPathString + File.separator + szName);

file.getParentFile().mkdirs();

file.createNewFile();

}

// 獲取文件的輸出流

FileOutputStream out = new FileOutputStream(file);

int len;

byte[] buffer = new byte[1024];

// 讀取(字節(jié))字節(jié)到緩沖區(qū)

while ((len = inPutZip.read(buffer)) != -1) {

// 從緩沖區(qū)(0)位置寫入(字節(jié))字節(jié)

out.write(buffer, 0, len);

out.flush();

}

out.close();

}

}

inPutZip.close();

}

public static List getFilesAllName(String path) {

File file=new File(path);

File[] files=file.listFiles();

if (files == null){

Log.e("error","空目錄");

return null;

}

List s = new ArrayList<>();

for(int i =0;i

s.add(files[i].getAbsolutePath());

}

return s;

}

}

2.使用示例,將assets中的壓縮文件解壓到App緩存,并獲取使用

//文件解壓

try{

AssetsZipUtils.UnZipAssetsFolder(getApplicationContext(),"fonts.zip",getExternalCacheDir().toString());

}catch (Exception e) {

e.printStackTrace();

}

//獲取解壓文件加下所有文件路徑

List filesAllName = AssetsZipUtils.getFilesAllName(getExternalCacheDir().toString() + File.separator + "fonts");

總結(jié)

以上是生活随笔為你收集整理的android assets解压,Android assets内压缩文件解压,解压到缓存示例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。