android读取assets文件
android读取assets文件
style='FONT-SIZE: 14px; FONT-FAMILY: verdana, "ms song", Arial, Helvetica, sans-serif; WHITE-SPACE: normal; WORD-SPACING: 0px; TEXT-TRANSFORM: none; FONT-WEIGHT: 400; COLOR: rgb(57,57,57); PADDING-BOTTOM: 0px; FONT-STYLE: normal; TEXT-ALIGN: left; PADDING-TOP: 0px; PADDING-LEFT: 0px; ORPHANS: 2; WIDOWS: 2; MARGIN: 10px auto; LETTER-SPACING: normal; PADDING-RIGHT: 0px; BACKGROUND-COLOR: rgb(250,247,239); TEXT-INDENT: 0px; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial'>以下是总结的从assets目录中读取文件的工具类,请看详细注释:
style='FONT-SIZE: 12px !important; OVERFLOW: auto; BORDER-TOP: rgb(204,204,204) 1px solid; FONT-FAMILY: "Courier New" !important; BORDER-RIGHT: rgb(204,204,204) 1px solid; WHITE-SPACE: normal; WORD-SPACING: 0px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; TEXT-TRANSFORM: none; FONT-WEIGHT: 400; COLOR: rgb(0,0,0); PADDING-BOTTOM: 5px; FONT-STYLE: normal; TEXT-ALIGN: left; PADDING-TOP: 5px; PADDING-LEFT: 5px; BORDER-LEFT: rgb(204,204,204) 1px solid; ORPHANS: 2; WIDOWS: 2; MARGIN: 5px 0px; LETTER-SPACING: normal; PADDING-RIGHT: 5px; BACKGROUND-COLOR: rgb(245,245,245); TEXT-INDENT: 0px; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial'>
style="PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 5px 0px 0px; PADDING-RIGHT: 0px; BACKGROUND-COLOR: rgb(245,245,245)">
class=cnblogs_code_copy
style='FONT-SIZE: 12px !important; FONT-FAMILY: "Courier New" !important; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; LINE-HEIGHT: 1.5 !important; PADDING-RIGHT: 5px'>
οnclick=copyCnblogsCode(this) title=复制代码
style="TEXT-DECORATION: underline; BORDER-TOP: medium none; BORDER-RIGHT: medium none; BORDER-BOTTOM: medium none; COLOR: rgb(100,102,179); PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; BORDER-LEFT: medium none; MARGIN: 0px; PADDING-RIGHT: 0px; BACKGROUND-COLOR: rgb(245,245,245)">
style="MAX-WIDTH: 900px; BORDER-TOP: medium none; BORDER-RIGHT: medium none; BORDER-BOTTOM: medium none; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; BORDER-LEFT: medium none; MARGIN: 0px; PADDING-RIGHT: 0px; BACKGROUND-COLOR: rgb(245,245,245)"
alt=复制代码 src="/images/copycode.gif">
package com.create.bicdroid.utils;import android.content.Context;import android.content.res.AssetManager;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import com.create.utilslibrary.LogUtils;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;/**
* Created by Administrator on /11/21.
*/
public class GetAssetsFiles {
/**
* 获取assets目录下的图片
*
* @param context
* @param fileName
* @return
*/
public static Bitmap getImageFromAssetsFile(Context context, String fileName) {
Bitmap image = null;
AssetManager am = context.getResources().getAssets();
try {
InputStream is = am.open(fileName);
image = BitmapFactory.decodeStream(is);
is.close();
} catch (IOException e) {
e.printStackTrace();
}
return image;
}
/**
* 获取assets目录下的单个文件
*
* @param context
* @param fileName
* @return
*/
public static File getFileFromAssetsFile(Context context, String fileName) {//这种方式不能用,只能用于webview加载,直接取路径是不行的
String path = "file:///android_asset/" + fileName;
File file = new File(path);
return file;
}
/**
* 获取所有文件
*
* @param path
* @return
*/
public static String[] getfilesFromAssets(Context context, String path) {
AssetManager assetManager = context.getAssets();
String[] files = null;
try {
files = assetManager.list(path);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
for (String str : files) {
LogUtils.logInfoStar(str);
}
return files;
}
/**
* 将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();
}
}
}
一键复制
编辑
Web IDE
原始数据
按行查看
历史