
assets文件夹里面的文件都是保持原始的文件格式,需要用AssetManager以字节流的形式读取文件。
1 先在Activity里面调用getAssets() 来获取AssetManager引用。
2 再用AssetManager的open(String fileName, int accessMode) 方法则指定读取的文件以及访问模式就能得到输入流InputStream。
3 然后就是用已经open file 的inputStream读取文件,读取完成后记得inputStreamclose() 。
4调用AssetManagerclose() 关闭AssetManager。
需要注意的是,来自Resources和Assets 中的文件只可以读取而不能进行写的 *** 作
代码public String getFromAssets(String fileName){
try {
InputStreamReader inputReader = new InputStreamReader( getResources()getAssets()open(fileName) );
BufferedReader bufReader = new BufferedReader(inputReader);
String line="";
String Result="";
while((line = bufReaderreadLine()) != null)
Result += line;
return Result;
} catch (Exception e) {
eprintStackTrace();
}
}
AssetManager assetManager = getAssets();
String[] files = null;
try {
files = assetManagerlist("");
} catch (IOException e) {
Loge("tag", egetMessage());
}
再去用File判断是文件、还是目录
可以通过这个方法来找到是否有你要的那个文件:String[]list=null;list=getResources()getAssets()list("abc");它返回的是在assets文件夹下abc文件夹中文件的文件名的列表。再去检查list中是否有你需要的文件。读取abc文件夹中的文件的时候只需:InputStreamin=getResources()getAssets()open("abc/yantxt");//不需要加“assets”
你获取的uri没有问题。但assets目录下的不能使用这种方法读取。你得把它先复制到sdcard中,然后从sdcard中传递这个至于原因嘛:assets目录里面的资源文件还在应用程序的apk文件中,一个压缩文件中。所以不能这样读
以上就是关于Android 在assets的子文件夹如何读全部的内容,包括:Android 在assets的子文件夹如何读、android assets文件夹下的子文件夹名字怎么获取、如何获取android 下的StreamingAssets文件夹中的xml文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)