Открытие файла из папки R.raw
Я пытаюсь открыть файл из моей папки R.raw с помощью inputtream. Но я всегда получал эту ошибку:
'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;
}
}
2 ответа
Где-то должна быть ссылка на 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()
или после
Ваша проблема здесь в том, что вы не продлеваете активность. Вы не можете позвонить getResources()
потому что его не существует
Без класса Activity вы не можете использовать getResources(), пока не вставите контекст в качестве параметра.