2010-11-30 54 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