Java Android文件IO接口类

Java Android文件IO接口类,java,android,file-io,Java,Android,File Io,我阅读了一些关于文件IO的API的文章,并阅读了以下博文:。当所有内容都处于同一活动中时,他的代码工作正常。但我要做的是创建一个IOInterface类,我可以用它打开多个数据库来填充多个列表 ListA.java public class ListA { public List<ClassA> list; private final String DBA = "dbA"; private IOInterface database; public L

我阅读了一些关于文件IO的API的文章,并阅读了以下博文:。当所有内容都处于同一活动中时,他的代码工作正常。但我要做的是创建一个IOInterface类,我可以用它打开多个数据库来填充多个列表

ListA.java

public class ListA
{
    public List<ClassA> list;
    private final String DBA = "dbA";
    private IOInterface database;

    public List()
    {
        list = new ArrayList<ClassA>();
        database = new IOInterface();
    }

    ...

    public void initListA() throws IOException
    {
        database.openForWriting(DBA);

        String myStr = new String("content");
        database.dos.writeBytes(myStr);
        database.dos.flush();
        database.dos.close();
    }
}
public class IOInterface
{
    public DataOutputStream dos;
    private FileOutputStream fos;

    public void openForWriting(String database)
    {
        try {
            fos = openFileOutput(database, Content.MODE_PRIVATE);
            dos = new DataOutputStream(fos);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}
Eclipse下划线
fos=openFileOutput(数据库、内容、模式\u私有)。注释为
openFileOutput()
不存在。解决方法是将IOInteface类扩展为一个活动。我想
openFileOutput()
是一个活动类的方法

所以我的问题是如何完成我想做的事情?标准Java文件io,例如:

File fp = new File("database");
FileOutputStream fos = new FileOutputStream(fp);
不起作用。它捕获一个FileNotFoundException。但这必须是可行的。有什么想法吗


谢谢,

方法
openFileOutput()
包含在
上下文中,因此您可以将该类的实例传递给打开文件的方法。当您想要处理文件时,应该始终使用
上下文中的方法


您可以在中阅读有关使用内部和外部存储的信息。

方法
openFileOutput()
包含在
上下文中,因此您可以将此类的实例传递给打开文件的方法。当您想要处理文件时,应该始终使用
上下文中的方法


您可以在中阅读有关使用内部和外部存储器的信息。

难以置信。。。我正要发帖,而你却给出了完全相同的答案+1.我正在导入上下文类:import android.content.Context。那么,为什么Eclipse会说“IOInterface类型的方法openFileInput(String)未定义”,除非我将IOInterface扩展为活动?我通读了FileInputStream()的API,没有看到任何需要作为活动的引用。@njozwiak:您可能对Java非常陌生。导入类仅仅意味着可以使用它(创建实例、扩展等)<代码>活动
上下文
的子类。方法
openFileOutput()
包含在
Context
类中-这就是为什么
openFileInput()
仅在
Activity
实例中可用,但在IOInterface中不可用的原因。@Arhimed:是的,我是Java新手,尤其是Android。我几乎所有的工作都是C语言和嵌入式系统,所以如果我的问题显而易见,请原谅我。如果活动是上下文的子类,那么为什么需要访问上下文的方法呢。在我看来,如果一只狗是宠物的一个子类,那么它和它的功能应该可以在没有所有子类的情况下访问。在我的例子中,if活动是访问上下文的成员函数所必需的。如何在不创建和启动单独活动的情况下打开io文件?@njozwiak:
Context
是一个公共抽象类。它不能直接实例化<代码>活动
上下文
的一个间接子类。有两个中间类-
ContextWrapper
ContextThemeWrapper
。所有
上下文
子体都具有
openFileInput()
。因此,要调用
openFileInput()
您需要一个非抽象
上下文的实例(抽象类不能被实例化),而
活动
是一个合适的选择。您还可以在
应用程序中使用
openFileInput()
服务中使用
openFileInput()
,因为它们也是
Context
子类。难以置信。。。我正要发帖,而你却给出了完全相同的答案+1.我正在导入上下文类:import android.content.Context。那么,为什么Eclipse会说“IOInterface类型的方法openFileInput(String)未定义”,除非我将IOInterface扩展为活动?我通读了FileInputStream()的API,没有看到任何需要作为活动的引用。@njozwiak:您可能对Java非常陌生。导入类仅仅意味着可以使用它(创建实例、扩展等)<代码>活动
上下文
的子类。方法
openFileOutput()
包含在
Context
类中-这就是为什么
openFileInput()
仅在
Activity
实例中可用,但在IOInterface中不可用的原因。@Arhimed:是的,我是Java新手,尤其是Android。我几乎所有的工作都是C语言和嵌入式系统,所以如果我的问题显而易见,请原谅我。如果活动是上下文的子类,那么为什么需要访问上下文的方法呢。在我看来,如果一只狗是宠物的一个子类,那么它和它的功能应该可以在没有所有子类的情况下访问。在我的例子中,if活动是访问上下文的成员函数所必需的。如何在不创建和启动单独活动的情况下打开io文件?@njozwiak:
Context
是一个公共抽象类。它不能直接实例化<代码>活动
上下文
的一个间接子类。有两个中间类-
ContextWrapper
ContextThemeWrapper
。所有
上下文
子体都具有
openFileInput()
。因此,要调用
openFileInput()
您需要一个非抽象
上下文的实例(抽象类不能被实例化),而
活动
是一个合适的选择。您还可以在
应用程序
服务
中使用
openFileInput()
,因为它们也是
上下文
子类。