2013-03-15 148 views
0

我正在開發一個文本文件中寫入一些JSON數據的應用程序:文件在Android中保存在哪裏?

FileOutputStream fOut; 
fOut = openFileOutput("myfile.txt", MODE_PRIVATE); 
OutputStreamWriter osw = new OutputStreamWriter(fOut); 
osw.write(myJSONData); 

我測試的設備上該應用程序,當我在我的電腦插上電源,我無法看到文件。您能否告訴我在哪個目錄下存儲,我需要將文件的操作模式設置爲MODE_WORLD_READABLE才能看到它?

回答

1

將其插入計算機通常會將其安裝到SD卡上。要保存到SD卡根目錄文件Environment.getExternalStorageDirectory(),然後構建一個新的文件與該文件和所需的字符串文件名作爲參數。這會將它保存到SD卡中,該卡應該是您將其安裝到計算機上時看到的第一個文件夾。

順便說一下,對於直接寫文本/ JSON文件,只需使用FileWriter即可。

+1

我下載了一個文件管理器應用程序在我的電話,我可以看到的文件,但是當我插上它在我的電腦,我仍然無法看到這些文件。你知道爲什麼請嗎? – user1135357 2013-03-15 12:51:58

+0

您是否嘗試過我所說的或者您仍在使用您的原始代碼?如果你保存到SD卡上,那麼你可能需要在手機上卸載它(有一個通知說「USB連接 - 選擇將文件複製到/從你的計算機」,點擊它)。另外請確保您的設備具有正確的USB驅動程序。沒有他們,有些人就無法工作。 – 2013-03-16 06:26:03

+0

我的手機不接受SD卡。當我在計算機上打開文件資源管理器時,它似乎並不存在,但是當我在手機上打開文件管理器應用程序時,我可以在那裏看到它,即我正在檢查相同的目錄,先在我的計算機上,然後使用一個應用程序在我的手機和後一種情況下,我可以看到該文件。這似乎很奇怪。沒關係,謝謝你的幫助 – user1135357 2013-03-16 18:11:37

1

在移動設備爲root之前,您無法直觀地看到內部文件。如果你想看到它,然後將其存儲在SD卡中。

2

它將文件保存在/data/app_package_name/files文件夾中。用戶通過文件管理器無法訪問此位置 - 只有您的應用可以通過代碼訪問該位置。

此外,如果您真的渴望訪問私有文件,那麼您需要考慮選擇生根您的設備。

0

要將文件保存到Android上的內部存儲器(自SDK 23起),請使用getFilesDir()獲取應用程序的文件存儲位置並將其保存到那裏。這些文件應該保存到/data/user/0/your.app.name/files。請參閱:Saving Files

File filename = new File(getFilesDir(), "filename.txt"); 

一旦寫入,您可以使用亞行檢索您的計算機文件:

adb pull "/data/user/0/your.app.name/files/filename.txt"