2011-01-13 127 views
3

在我的應用我做File newxmlfile = new File(Environment.getExternalStorageDirectory() + "/Message.xml");文件保存到手機,而不是SD卡

保存XML文件到用戶的SD卡,但並不是所有的用戶都SD卡在自己的手機,因此我的應用程序很可能會崩潰。

如何更改文件創建方法以便將文件保存到手機的存儲器而不是SD卡?

另外,如何更改文件的加載? (當前:new InputSource(new FileInputStream(Environment.getExternalStorageDirectory() + "/Message.xml"))

編輯:我不認爲你有這個問題的權利。我知道Android Docs的Data-Storage頁面,並且已經閱讀過它。我只是想知道我應該如何調整它以符合我目前保存和加載文件的方式。

+1

每一個Android兼容設備得到它支持一個共享的「外部存儲」你可以用來保存文件。這可以是可移動存儲介質(如SD卡)或內部(不可移動)存儲器。注意:不要被這裏的「外部」一詞所迷惑。這個目錄可以更好地被認爲是媒體/共享存儲。它是一個在所有應用程序之間共享的文件系統(不強制執行權限)。傳統上這是一個SD卡,但它也可以作爲內置存儲器實現在與受保護的內部存儲器不同的設備中,並且可以安裝作爲計算機上的文件系統。 – rohitverma 2013-03-06 17:49:06

回答

4

通過改變

Environment.getExternalStorageDirectory() + "/Message.xml" 

Environment.getDataDirectory() + "/data/com.companyname.appname/files/Message.xml" 
3

首先,您應該通過檢查getExternalStorageState()來檢查外部存儲(SD卡)是否可用並準備好寫入。 更多這裏:http://developer.android.com/guide/topics/data/data-storage.html#filesExternal

然後,如果SD卡不可用,您可以寫入內部存儲。 更多內容,例如如何寫和讀:http://developer.android.com/guide/topics/data/data-storage.html#filesInternal

+0

問題是我不希望我的應用程序出現碎片。我想在所有設備上使用相同的1版本。另外,我不想在我的應用程序中進行檢查。這很容易。 – Galip 2011-01-13 09:57:59