这是我试过的代码:如何使用getAssets()。使用FileWriter打开(文件名)?
FileWriter outFile = new FileWriter(getAssets().open("USCOUNTIES"),append);
但是在编译时就给出了这样的错误: “的方法getAssets()是未定义的类型class1的”
什么是在这种情况下的正确用法?
这是我试过的代码:如何使用getAssets()。使用FileWriter打开(文件名)?
FileWriter outFile = new FileWriter(getAssets().open("USCOUNTIES"),append);
但是在编译时就给出了这样的错误: “的方法getAssets()是未定义的类型class1的”
什么是在这种情况下的正确用法?
您不能写入的资产。 open()
返回InputStream
;你不能用FileWriter
或其他东西写入InputStream
。这超出了你所得到的错误(由于试图拨打getAssets()
而不是Context
)。
方法getAssets()
是Context的一部分,您可以在上下文本身或其子类Activity
上调用它。你应该通过其中其需要
public void doSomethingRelatedToFiles(Context ctx){
AssetManager am = ctx.getAssets();
...
}
的getAssets语境()方法在Context接口定义。所以你的错误意味着class1没有实现Context接口。
基本上,这个方法可以从Activity和Service和Resource类中获得。
所以你需要传递Context作为方法参数。做这样的事情:
public void myMethod(Context context){
...
FileWriter outFile = new FileWriter(context.getAssets().open("USCOUNTIES"),append);
...
}
,并假设您是从一个活动叫myMethod
,做这样的事情:
class1Instance.myMethod(this);
你能告诉我如何改正它吗? – user1944664 2013-03-16 16:08:51
你应该像使用Ben一样将上下文传递给使用它的方法,注意'this'引用Activity实例,它是'Context'的子类, – 2013-03-16 16:21:51
打开位于资产文件夹中名为“USCOUNTIES”的文件。 这是一个android应用程序。 – user1944664 2013-03-16 16:02:07
是什么类型的文件,它是一个txt文件,pdf等 – Pragnani 2013-03-16 16:07:16
这是一个txt文件。 – user1944664 2013-03-16 16:09:10