2011-02-11 72 views
2

初學android的問題。好的,我已經成功地編寫了文件。例如。 //獲取文件名 String filename = getResources()。getString(R.string.filename);where/data/data /?

 FileOutputStream toWriteTo; 
     try { 
      toWriteTo = openFileOutput(filename, MODE_WORLD_READABLE); 
      // get the string to write 
      String toWrite = getResources().getString(R.string.contentstowrite); 
      toWriteTo.write(toWrite.getBytes()); 
      toWriteTo.close(); 

      ...   
       } 
     catch (Exception ex) { 
      Toast.makeText(HelloFilesAppActivity.this, "fail!", Toast.LENGTH_SHORT).show(); 
     } 
     }}); 

而且我已經證明了它的存在,通過閱讀它,並顯示內容,即使使用getFilesDir(),並顯示該文件夾中的所有文件。

我讀過的所有文件都在/ data/data // files/ 但是我找不到它們。 (我在Windows XP上)。我的安裝沒有使用默認位置,因爲我的C:\相當滿。我查看了C:\ Documents and Settings \ Mike \ .android \ avd,並在項目文件夾中以及我安裝SDK的位置:D:\ Program Files \ Android \ android-sdk-windows。那麼/ data/data /在哪裏?

我讀過我可以使用ADB來回推送文件,但我使用的是Eclipse ADT,我寧願使用除命令行之外的其他東西。我正在使用的這本書似乎暗示你可以使用Eclipse,但隨後繼續提供命令行命令。

我發現有關DDMS中的Project Explorer的信息,但是我沒有看到我寫的文件。

我一直在假設,我可能想要在Windows中使用其他方式創建文本文件,我會用我的應用程序閱讀。所以如果答案是「你爲什麼要這麼做?」,那就是我所追求的。最終也可能是數據庫(這是在下一章:-))。

我必須使用ADB命令行嗎?

感謝

邁克

回答

3

http://developer.android.com/guide/topics/data/data-storage.html

的方法您的使用,讓你讀/寫的目錄:

openFileOutput()

您可以直接保存在設備內部存儲器中的文件。 默認情況下,保存到內部存儲的文件對您的應用程序是私人的,並且其他應用程序無法訪問它們(用戶也不能訪問)當用戶卸載您的應用程序時,這些文件將被刪除。

您需要將您使用的文件保存到SD卡。

試試這個:

getExternalStoragePublicDirectory Example

+0

好吧,我嘗試了一個簡單的外部存儲設備,使它比鏈接的例子更簡單(謝謝!)。我的代碼是: – user613586 2011-02-12 19:37:29

3

這是您的手機上。您的手機擁有自己的文件系統。如果您使用的是仿真器,那麼它就在仿真的文件系統上,它與您的文件系統完全分離。通過ADB訪問手機(或模擬器)文件系統的唯一方法是(除非我們正在談論SD卡,但不包含主機/數據/數據)。

備註 - 如果您的手機沒有固定,您將無法訪問/ data/data上的大量內容。我想你正在使用一個仿真器,這個仿真器是根源於你可以完全訪問它的文件系統。

+0

是的,我使用的仿真器。 – user613586 2011-02-12 00:52:13