访问assets文件夹中的文件

时间:2013-12-17 10:29:59

标签: java android

如果我使用输入流来访问资源文件夹中的文件,如

InputStream is = getAssets().open("errorMapperConfig.xml");

我得到NullPointerException,帮我解决这个问题。

3 个答案:

答案 0 :(得分:2)

Context变量用于getAssetes();

AssetManager mngr = myContext.getAssets();
InputStream is = mngr.open("errorMapperConfig.xml");

答案 1 :(得分:0)

private void readFiles() {
           try
           {
            AssetManager assetManager = getAssets();
            InputStream inputStream;
            inputStream = assetManager.open("webpages/how-to-use.html");

            String detail=loadTextFile(inputStream);
            webView.loadData(detail, "text/html", "utf-8");

           }
           catch(Exception e){
               Log.e("Exception ","======>"+e.toString());
             }
        }

    public String loadTextFile(InputStream inputStream) throws IOException {
        ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
        byte[] bytes = new byte[4096];
        int len = 0;
        while ((len = inputStream.read(bytes)) > 0)
          byteStream.write(bytes, 0, len);
        return new String(byteStream.toByteArray(), "UTF8");
      }

我希望这会有所帮助。谢谢!!

答案 2 :(得分:0)

您必须将主要活动的上下文传递给此类。将以下代码放在具有以下活动的类的onCreate()方法中:

Context context = getApplicationContext();

然后,替换你的代码:

InputStream is = context.getAssets().open("errorMapperConfig.xml");

不要忘记您必须在项目根目录中名为errorMapperConfig.xml的文件夹中包含名为assets的文件。

请参阅getApplicationContext()的文档。