2015-10-13 63 views
0

我只是在嘗試使用此代碼編寫的文本文件:安卓:試圖保存文件

try { 

     File ins = new File(context.getFilesDir(), "myfile"); 
     FileOutputStream out = new FileOutputStream(ins); 
     out.write(string.toString().getBytes()); 
     out.close(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

我自己也嘗試這樣的代碼:

File aux = context.getFilesDir(); 

    String filename = "myfile"; 
    String string = "Hello world!"; 
    FileOutputStream outputStream; 

    try { 
     outputStream = openFileOutput(aux + filename, MODE_PRIVATE); 
     outputStream.write(string.getBytes()); 
     outputStream.close(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

問題:IM沒有得到任何錯誤,但是他們都沒有保存文件。我期望在​​找到新文件,因爲content.getFilesDir()的輸出就是這樣。

而且,我無法找到根/data/文件夾,但一個/Android/data之一,而後者的裏面,有幾個目錄,如com.android.browsercom.dropbox.android,但他們沒有被命名爲com.example.tirengarfio.myapplication

+0

您嘗試/ storage/emulated/data嗎?有時模擬不存在或可能事情正在存儲在SD卡中,但您的文件可能在裏面/存儲 –

+0

你是如何驗證該文件不存在 – ligi

回答

1

您需要root權限才能從adb訪問/data/data

而是/ Android設備/數據中的一個,而後者的內部,有幾個 目錄像com.android.browser或com.dropbox.android,但其中沒有 名爲com.example.tirengarfio .myapplication

使用getExternalFilesDir如果你想在該目錄中寫入。您需要在清單上添加寫入權限

+0

現在可以嘗試將文件保存在'/ data'中。我已經爲Android下載了一個文件管理器,現在我可以看到像'/ data','/ dev','/ devlog'這樣的不同層次結構。但是當我去到/ data數據庫時,它說這個文件夾是空的。我已將此行添加到'AndroidManifest.xml':'<使用權限android:name =「android.permission.WRITE_EXTERNAL_STORAGE」/>' – ziiweb

+0

FileManager沒有權限訪問/ data。這就是爲什麼沒有看到任何東西 – Blackbelt

+0

,但我在我的智能手機上擁有root權限,我使用應用程序對其進行了檢查。 – ziiweb

1

我自己也嘗試這樣的代碼:

這是行不通的,因爲aux + filename是無效的,你的代碼會觸發某種IOException。你的第一個代碼片段更好。

我無法找到根/數據/文件夾,但一/安卓/數據一個

那是因爲你正在尋找在external storage,不internal storage。內部存儲在生產硬件上不可訪問,但可以使用DDMS的文件瀏覽器在模擬器上瀏覽。

+0

我已經下載了Android的文件管理器,現在我可以看到目錄'/ data','/ dev'等。但是當我去'/ data'時,裏面什麼也沒有。 – ziiweb

+0

@ziiweb:正如我寫的,內部存儲在生產硬件上無法訪問,但可以使用DDMS的文件瀏覽器在模擬器上瀏覽。那麼,你下載了什麼文件管理器?設備還是仿真器? – CommonsWare

+0

我剛安裝了這兩個設備,還有DDMS的文件瀏覽器,都是搖滾!謝謝!對於我來說 – ziiweb