2013-03-16 46 views
1

这是我试过的代码:如何使用getAssets()。使用FileWriter打开(文件名)?

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

但是在编译时就给出了这样的错误: “的方法getAssets()是未定义的类型class1的”

什么是在这种情况下的正确用法?

+0

打开位于资产文件夹中名为“USCOUNTIES”的文件。 这是一个android应用程序。 – user1944664 2013-03-16 16:02:07

+0

是什么类型的文件,它是一个txt文件,pdf等 – Pragnani 2013-03-16 16:07:16

+0

这是一个txt文件。 – user1944664 2013-03-16 16:09:10

回答

2

您不能写入的资产。 open()返回InputStream;你不能用FileWriter或其他东西写入InputStream。这超出了你所得到的错误(由于试图拨打getAssets()而不是Context)。

0

方法getAssets()Context的一部分,您可以在上下文本身或其子类Activity上调用它。你应该通过其中其需要

public void doSomethingRelatedToFiles(Context ctx){ 
    AssetManager am = ctx.getAssets(); 
    ... 
} 
0

的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); 
+0

你能告诉我如何改正它吗? – user1944664 2013-03-16 16:08:51

+0

你应该像使用Ben一样将上下文传递给使用它的方法,注意'this'引用Activity实例,它是'Context'的子类, – 2013-03-16 16:21:51

相关问题