我想知道在android中读取文件只能在活动的onCreate()下工作吗? 我有这个问题是因为我的阅读过程在读取过程位于onCreate()旁边或者在onCreate下调用的方法中有效。
以下是我用于阅读文件的内容
try {
file="";
InputStream ish = this.getResources().openRawResource(R.drawable.regular_hero_deck);
BufferedReader brh = new BufferedReader(new InputStreamReader(ish));
if(ish!=null){
while ((data = brh.readLine()) != null) {
file+=data;
}
}
ish.close();
regularDeckHero =new Deck<Hero>("heroDeck",file);
}catch (Exception e){//Catch exception if any
System.err.println("Error : reading hero deck");}
解决方案:这是
的问题InputStream ish = this.getResources().openRawResource(R.drawable.regular_hero_deck);
this.getResources()没有给出我想要的东西,你需要的资源是你的MainActivty传递的资源,这个资源应该可行。
答案 0 :(得分:2)
它适用于每个地方,甚至在活动之外..
可能是以下行
InputStream ish = this.getResources().openRawResource(R.drawable.regular_hero_deck);
导致问题..因为你使用它(当前实例是一个Activity)..
通过获取应用程序上下文引用,您仍然可以说
InputStream ish = context.getResources().openRawResource(R.drawable.regular_hero_deck);
答案 1 :(得分:0)
更改此行..
InputStream ish = this.getResources().openRawResource(R.drawable.regular_hero_deck);
到
InputStream ish = YourActivityname.this.getResources().openRawResource(R.drawable.regular_hero_deck);
e.g。 YourActivityname类似于mainActivity