这是我尝试过的代码:
FileWriter outFile = new FileWriter(getAssets().open("USCOUNTIES"),append);
但它在编译时会出现此错误: “对于类型class1”
,方法getAssets()未定义此方案中的正确用法是什么?
答案 0 :(得分:2)
您无法写入资产。 open()
返回InputStream
;您无法使用InputStream
或其他任何内容写入FileWriter
。这超出了您所获得的错误(由于尝试在非getAssets()
的某些内容上调用Context
而导致。)
答案 1 :(得分:0)
方法getAssets()
是Context的一部分,您可以在上下文本身或其子类Activity
上调用它。您应该在需要的地方传递上下文
public void doSomethingRelatedToFiles(Context ctx){
AssetManager am = ctx.getAssets();
...
}
答案 2 :(得分:0)
getAssets()方法在Context接口中定义。所以你所犯的错误意味着class1没有实现Context接口。
基本上,此方法可从“活动和服务”和“资源类”中获得。
因此,您需要将Context作为方法参数传递。做这样的事情:
public void myMethod(Context context){
...
FileWriter outFile = new FileWriter(context.getAssets().open("USCOUNTIES"),append);
...
}
假设您从某个活动中调用myMethod
,请执行以下操作:
class1Instance.myMethod(this);