getAssets()在eclipse中显示错误

时间:2013-11-05 06:06:17

标签: android file

我正在尝试在资源文件夹中的文件中搜索字符串。 getassets()。open表示未定义。 我在某处读到了这种方式。 这是我的代码:

    import java.io.File;
    import java.util.Scanner;

    import android.content.Context;
    import android.util.Log;

    public class Search {

 public static void LoadStuff(String Name) {

      Scanner reader = null;
      try {
          reader = new Scanner(new File(getAssets().open("myFile.txt"))); 
      } catch (Exception e) {
         Log.d("damn", "FAIL");
      }
         if(reader != null)
            Load(reader);
   }




private static void Load(Scanner reader) {
      while (reader.hasNext()) {
         String result = reader.next();
         if (result.equals("water")) {   
            while (result != "KEYEND") {
               int index = reader.nextInt();
               Log.d("Index", String.valueOf(index));
            }
         }
      }
            reader.close();
   }
    }

3 个答案:

答案 0 :(得分:3)

您正在调用getAssets,但实际上并没有要加载的上下文。您需要将应用程序上下文传递给此类。

public static void LoadStuff(Context appContext, String fileName){

然后

appContext.getAssets().open(fileName);

Scanner构造函数也在InputStream中接受,因此您的行将成为:

 reader = new Scanner(getAssets().open("myFile.txt"));

答案 1 :(得分:2)

首先使用Context作为Matt Clark回答..

然后第二件事是getAssets().open("myFile.txt")InputStream而非File

所以读它就像

InputStream is = context.getAssets().open("myFile.txt");
reader = new Scanner(is); 

答案 2 :(得分:0)

为了使用getAssets()方法,您需要具有BaseApplicationContext或Activity Context。

尝试使用context.getAssets()

 AssetManager assets = activityContext.getResources().getAssets();
 InputStream inputStream = assets.open("SlideImages/"+fullImage);