2012-04-25 61 views
0

我想用一個字符串保存一個文件,然後加載它。在仿真器上保存並加載文件

不知何故,這不工作。我認爲存儲的文件無法找到或沒有存儲(根據日誌)。

如何解決這個問題?

這裏是節省代碼:

Log.i("Watcher","Saving..."); 
ProgressDialog dSave = ProgressDialog.show(this, "Saving", "SAving. Please wait...",false);    
String fName = "WatchConf"; 
EditText servPath = (EditText)findViewById(R.id.ServerPath); 
String sServPath = servPath.getText().toString(); 

try { 
    FileOutputStream fos = openFileOutput(fName, Context.MODE_PRIVATE); 
     fos.write(sServPath.getBytes()); 
     fos.flush(); 
     fos.close(); 
     Log.d("Watcher","Saved"); 

     File fCheck = new File(getFilesDir()+fName); 
     if(fCheck.exists()){ 
      Log.i("Watcher","Saved successfully"); 
     } 

代碼加載:

Log.i("Watcher","Loading..."); 
     String fName = "WatchConf"; 
     EditText servPath = (EditText)findViewById(R.id.ServerPath); 

     try {   
      InputStreamReader isr = new InputStreamReader(openFileInput(getFilesDir()+"/"+fName)); 
      char[] cRead = new char[100]; 
      isr.read(cRead); 
      String sRead = new String(cRead); 
      servPath.setText(sRead); 
      isr.close(); 
      Log.i("Watcher","Loaded"); 
+0

嘗試在日誌語句中打印出sServPath,以確保您正在拖動需要的文本 - 您可能有無效的視圖或其他內容。 – 2012-04-25 12:57:26

+0

視圖是好的,打印出正確的文本 – ctekk 2012-04-25 13:02:55

+0

好吧我忘了fCheck文件的路徑和fName之間的「/」。仍然它的文件不加載我上面添加的代碼(NPE) – ctekk 2012-04-26 08:23:41

回答

1

你寫過:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
+0

我不寫外部存儲,是嗎?上下文模式是私人的,但我現在會嘗試 – ctekk 2012-04-26 08:14:58

0

爲什麼它不工作的原因是,我想要儘快將字符串加載到視圖中。

setContentView(R.layout.main);之後加載它解決了這個問題。