记录下assetManager的简要使用。
1.列出assets目录下所有文件
private void showAssetList(){
AssetManager assetManager = getResources().getAssets();
try {
String[] lists = assetManager.list("zxl");
for (String fileName:lists){
Log.e("asset文件",fileName );
}
} catch (IOException e) {
e.printStackTrace();
}
}
如上图所展示,我们可通过 fileName.concat(".") 来判定此文件是 文件夹(directory)还是文件(file) 。但该案例还没有打印出所有文件,下面我们就来实现迭代打印该文件夹下的所有文件。
private void showAssetList(String fileAssetName){
AssetManager assetManager = getResources().getAssets();
try {
String[] lists = assetManager.list(fileAssetName);
for (String fileName:lists){
if (fileName.contains(".")){
// 文件
Log.e("asset","文件名路径 = "+fileAssetName+File.separator+fileName+"\n");
}else {
Log.e("asset","文件夹路径 = "+fileAssetName+File.separator+fileName+"\n");
showAssetList(fileAssetName+File.separator+fileName);
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
E/asset: 文件名路径 = zxl/1.txt
E/asset: 文件夹路径 = zxl/l
E/asset: 文件名路径 = zxl/l/hehe.txt
E/asset: 文件夹路径 = zxl/x
E/asset: 文件名路径 = zxl/x/haha.txt
E/asset: 文件夹路径 = zxl/z
E/asset: 文件名路径 = zxl/z/wuwu.txt
打印文件txt内容
private void showContent(String fileName) {
InputStream inputStream = null;
BufferedReader bufferedReader = null;
String line = null;
AssetManager assetManager = getResources().getAssets();
try {
inputStream = assetManager.open(fileName);
bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
while ((line = bufferedReader.readLine()) != null) {
Log.e("数据打印", line+"");
}
} catch (IOException e) {
e.printStackTrace();
}
}
E/数据打印: 哦哦 加油
E/数据打印: 你是谁
E/数据打印: 我是开发者
E/数据打印: 哦哦 你好