1

我正在尝试使用输入流从我的 R.raw 文件夹中打开文件。但我总是得到这个错误:

'The method getResources() is undefined for the type Wordchecker'

当我尝试使用快速修复时,出现另一个错误。就像这个:

'The method openRawResource(int) is undefined for the type Object'...

这是我的代码:

public class Wordchecker {
    public static void main(String arg[]){
        HashSet <String> newset = new HashSet <String>();
        try{
            //opening file of words
            InputStream is = getResources().openRawResource(R.raw.wordlist);
            DataInputStream in = new DataInputStream(is);  
            BufferedReader br = new BufferedReader(new InputStreamReader(in));  
            String strLine;

            //reading file of words
            while ((strLine = br.readLine()) != null) {  
                newset.add(strLine);  //adding word to the hash set newset
            }
            in.close();
        }catch (Exception e){
            e.printStackTrace();
        }
    }

    private static Object getResources() {
        // TODO Auto-generated method stub
        return null;
    }
}
4

2 回答 2

0

您的问题是您没有扩展 Activity。你不能打电话getResources(),因为它不存在

如果没有 Activity 类,您将无法使用 getResources(),直到您将上下文作为参数传递

于 2013-02-16T09:21:23.953 回答
0

您需要在某处引用Context ,因为getResources()是 Context 中的一个方法。

在您的构造函数中获取它的一个实例:

public class Wordchecker {
    Context mContext;

    public Wordchecker(Context c) {
        mContext = c;
        init()
    }

    public void init() {
        HashSet <String> newset = new HashSet <String>();
        try{
            //opening file of words
            InputStream is = getResources().openRawResource(R.raw.wordlist);
            DataInputStream in = new DataInputStream(is);  
            BufferedReader br = new BufferedReader(new InputStreamReader(in));  
            String strLine;
            //reading file of words
            while ((strLine = br.readLine()) != null) {  
                newset.add(strLine);  //adding word to the hash set newset
            }
            in.close();
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}

然后使用 Activity 或 Service 或任何扩展 Context 的对象创建此类的对象:

Wordchecker wordchecker = new Wordchecker(this);

确保wordchecker = new Wordchecker(this);onCreate()或之后

于 2013-02-16T09:24:43.463 回答