Java FileInputStream / Scanner与Android有关

时间:2013-03-31 12:24:09

标签: java android filenotfoundexception

我正在尝试在Java for Android中加载一些资源。这些资源是简单的文本文件,我需要阅读其中的内容。我在阅读和写入这些文件方面有相当多的经验,但现在有些东西正在破坏它。

这是我正在使用的代码。

FileInputStream fstream = new FileInputStream("file:///android_asset/Peacefulpack.mod");

所以当我运行它时,它应该在此目录中搜索Peacefulpack.modfile:///android_asset/Peacefulpack.mod

但是,当我查看控制台日志时,它告诉我Java正在寻找这个目录:file:///android_asset/Peacefulpack.mod

这给了我一个FileNotFoundException。我怎么能摆脱它?

2 个答案:

答案 0 :(得分:1)

在AssetManager中使用此方法public final InputStream open(String fileName)

请参阅:http://developer.android.com/reference/android/content/res/AssetManager.html#open(java.lang.String)

答案 1 :(得分:1)

  

我正在尝试用Java加载一些资源。

由于您希望使用存储在Android预定义目录中的数据,因此Android会提供直接指定用于您目标的方法。

首先查看提供以下方法的AssetManager

这很可能是您正在寻找的。方法返回存储在assets文件夹中的文件的InputStream

基本用法:

AssetManager am = this.getAssets(); // or YourActivity.this.getAssets()
   try { // generally Context
      InputStream is = am.open("yourFile.suffix");
   }
   catch (IOException e) {
      Log.w("IOException", e.getMessage());
   }

它应该可以解决你的问题。