Java Android文件IO接口类
我阅读了一些关于文件IO的API的文章,并阅读了以下博文:。当所有内容都处于同一活动中时,他的代码工作正常。但我要做的是创建一个IOInterface类,我可以用它打开多个数据库来填充多个列表 ListA.javaJava 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
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()
,因为它们也是上下文
子类。