2015-06-20 219 views
0
package org.jaberrio.personai2; 
import android.content.Context; 
import android.widget.Toast; 
import java.io.FileOutputStream; 

public class DataBaseManager { 

    public void setDataBase(Context context) { 
     String fileName = "CoolDataBaseFile.txt"; 
     String inputText = "Random Text Goes Here"; 
     FileOutputStream outputStream; 
     try { 
      outputStream = context.openFileOutput(fileName, context.MODE_PRIVATE); 
      outputStream.write(inputText.getBytes()); 
      outputStream.close(); 
      Toast finishedLoad = Toast.makeText(context, "I Have Finished Loading", Toast.LENGTH_SHORT); 
      finishedLoad.show(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 

的Android FileOutputStream中沒有創建文件

現在我想不過來創建一個文件時,我把這種構造的吐司通知我,它跑了,但沒有創建文件。我在數據/數據/中查找它,但我的應用程序目錄甚至沒有。

而且我是從一個片段調用構造函數是這樣的:

DataBaseManager db = new DataBaseManager(); 
     db.setDataBase(getActivity().getApplicationContext());
+0

「我在數據/數據/中查找它,但是我的應用程序目錄不存在」 - 您是在設備上還是在仿真器上測試它? – CommonsWare

+0

謝謝你的幫助。在Aslo @ Der Golem的物理設備上,我將盡力在一分鐘內回覆您。 (ASUS NEXSUS 7-2012) – Jaberrio

+0

Nope outputStream.flush();沒有區別我還沒有創建文件。你能否解釋它的作用?如果我應該保留它? [圖片中的文件](http://puu.sh/iwcfJ/0ebc976c5a.png) – Jaberrio

回答

2

在一個物理設備

您沒有通過正常手段獲得的內部存儲在實際設備上。主要的例外是,如果你是根設備的話。

adb shell run-as讓你彷彿他們正在運行你的應用程序,因此原則上,你可以用它來檢查內部存儲和查看文件是否有運行shell命令。

更簡單的解決方案是使用模擬器,尤其是x86模擬器,因爲您可以使用DDMS(在Eclipse中)或Android Device Monitor(從Android Studio啓動)瀏覽模擬器上的內部存儲器。