怎么获取assets文件夹的路径??

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么获取assets文件夹的路径??相关的知识,希望对你有一定的参考价值。

我想把字符串写入properties文件,下面代码提示找不到文件,求大神[mw_shl_code=java,true]public void saveConfig(Context context, String file, Properties properties) try FileOutputStream s = new FileOutputStream(file, false); properties.store(s, ""); System.out.println("write success!"); catch (Exception e) e.printStackTrace(); System.out.println("write error:+" + e); [/mw_shl_code][mw_shl_code=java,true]Properties prop = new Properties(); prop.put("prop1", "abc"); prop.put("prop2", 1); prop.put("prop3", 3.14); saveConfig(this, "/assets/config.properties", prop);[/mw_shl_code]

参考技术A InputStream inStream = context.getAssets().open("assets下的路径(不包含assets)/文件名");

如何获取Assets的路径

有两种方法可以获取assets的绝对路径:

 第一种方法:
       String path = file:///android_asset/文件名;
 第二种方法:
         InputStream abpath = getClass().getResourceAsStream("/assets/文件名");

 

        But,这样获取的路径并不能直接访问到assets的资源,如果一个mp3放在assets下,通过以上两种方法获得的路径并不能直接播放里面的mp3文件,why?

 

        那是因为在安卓应用中使用assets目录下存放的资源文件,是代表应用无法直接访问的原生资源,应用程序通过AssetManager以二进制流的形式来读取资源。

 

 第一种获取路径的方法,目前我所知道的,只是针对html的展示来使用的,比如你用到了webview,那么html的path可以用这种方法显示,其他情况不行。

 

        那么我们想用MediaPlayer播放里面的视频或者音乐该怎么做呢?可以以以下方式进行播放!

 

            MediaPlayer mediaPlayer=new MediaPlayer();

            AssetFileDescriptor afd = getAssets().openFd("musics/SleepOceation.mp3");
            mediaPlayer.setDataSource(afd.getFileDescriptor());

            mediaPlayer.prepare();(注意这句话必须有!)

            mediaPlayer.start();

 

           OK,这样就能顺利播放assets下的音乐或者视频文件了!

 

以上是关于怎么获取assets文件夹的路径??的主要内容,如果未能解决你的问题,请参考以下文章

UWP程序Assets文件夹在运行时的绝对路径怎么表示

获取位于 Assets.xcassets 的数据集中文件的路径

从 assets url 获取文件路径

如何获取Assets的路径

手机如何读取assets隐藏目录

如何得到android项目assets目录中的内容?