Android 在assets的子文件夹如何读

Android 在assets的子文件夹如何读,第1张

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文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10148860.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存