2010-11-30 38 views
1

我在文件IO的API上做了一些阅读,并阅读了以下博文:http://techknock.blogspot.com/2008/05/file-hadling-in-android.html。当所有事情都在同一个活动中时,他的代码工作正常。但我想要做的是创建一个IOInterface类,我可以使用它来打开多个数据库来填充多个列表。Android文件IO接口类

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(); 
    } 
} 

IOInterface.java

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(database, Content.MODE_PRIVATE);。与openFileOutput()不存在的评论。解决方法是将IOInteface类作为Activity来扩展。那么我想openFileOutput()是一个活动类的方法。

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

File fp = new File("database"); 
FileOutputStream fos = new FileOutputStream(fp); 

不起作用。它捕获FileNotFoundException。这必须是可行的。有任何想法吗?

感谢,

回答

5

方法openFileOutput()包含在Context类,这样你就可以通过这个类的方法,打开文件的一个实例。当你想使用文件时,你应该总是使用Context中的方法。

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

+0

令人难以置信...我正要打Post,并且你发布了完全相同的答案! +1。 – 2010-11-30 18:49:32