如何在FileWriter中使用getAssets()。open(filename)?

时间:2013-03-16 15:59:59

标签: java android filewriter

这是我尝试过的代码:

FileWriter outFile = new FileWriter(getAssets().open("USCOUNTIES"),append);

但它在编译时会出现此错误: “对于类型class1”

,方法getAssets()未定义

此方案中的正确用法是什么?

3 个答案:

答案 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);