0

我将文件放在目录资产中。我如何得到它们?我尝试按照说明进行操作,但没有奏效:

File f = new File("/data/data/ant.BrowserX/files/" + pagCorrente + ".html");

File f = new File("file:///android_asset/" + pagCorrente + ".html");

没有错误,但运行时我无法访问该文件。如何访问目录“资产”?

编辑

谢谢你的把戏。我有一个问题,我使用 BufferedReader 来读取文件,并对其进行初始化,而不是使用 InputStream。

in = new BufferedReader(new FileReader(f));

我该怎么办?

4

3 回答 3

4

您可以通过 getResources() 中的 getAssets() 方法从文件中获取 InputStream:

 InputStream is = getResources().getAssets().open("file.html");

然后只需将流转换为您需要的任何内容

于 2012-06-14T15:55:46.187 回答
2

我知道您可以使用它来获取输入流:

  final AssetManager assetMgr = this.getResources().getAssets();  
  InputStream is = assetMgr.open(pagCorrente +".html"); 

所以可能你可以使用:

   File f = new File(this.getResources().getAssets() + pagCorrente + ".html");
于 2012-06-14T15:58:13.223 回答
1

简单的答案,您不访问“目录”资产。.apk 中没有目录结构,它只是数据。框架知道如何访问它(getAssets()),但您不能像标准目录一样使用它。

话虽这么说,如果您尝试使用 WebView 并访问 html 文件(这就是它的样子),他们会在其中放置一个“假”路径引用,您可以像这样使用:

WebView wv = (WebView)this.findViewById(R.id.yourWebView); 
wv.loadUrl("file:///android_asset/" + pagCorrente + ".html");
于 2012-06-14T16:03:20.497 回答