2014-05-14 85 views
0

我只是學習Android的初學者。我想學習如何將一段文本寫入Android中的文件。在Android中寫入文件

我的代碼編寫,在點擊一個按鈕看起來是這樣的:

write.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      FileOutputStream fos; 
      try { 
       fos = openFileOutput("filename", Context.MODE_PRIVATE); 
       fos.write(data.getBytes()); 
       fos.close(); 
      } catch (FileNotFoundException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      tv.setText("Values saved"); 
     } 
    }); 

當我執行這個FileNotFoundException在logcat中拋出。據我所知,一個新的文件將被創建,如果沒有這樣的名稱的文件存在。

的logcat的消息是:

> 05-14 08:37:55.085: W/System.err(281): java.io.FileNotFoundException: /data/data/com.example.myproject11/files/test (No such file or directory) 
+0

你是不是指'context.openFileOutput'?閱讀[這](http://stackoverflow.com/questions/3625837/android-what-is-wrong-with-openfileoutput) – Raptor

+0

你必須創建該文件。使用file.createNew()並確保該目錄存在..使用dir.mkdirs()。不要從主線程開始,開始一個新的線程。 –

+0

'/ data/data/com.example.myproject11/files/test'不是'「filename」'。至少是與你得到的錯誤一致的郵政編碼。 – njzk2

回答

0

首先,我們應該檢查,文件存在與否。最好你試試:

File fileDir = new File("filepath"); 
    if (!fileDir.exists()) 
     fileDir.mkdirs(); 

    try { 
     File file = new File(fileDir, "filename"); 
     FileOutputStream outputStream = new FileOutputStream(file); 
     outputStream.write(data.getBytes()); 
     outputStream.close(); 
    } catch (FileNotFoundException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    tv.setText("Values saved"); 
+0

你知道'openFileOutput'是做什麼的嗎? – njzk2

+0

嗨Chetan.Thanks幫助我...我嘗試了你的建議。但仍FileNotFoundException拋出。 05-15 00:04:51.903:W/System.err(303):java.io.FileNotFoundException:/ filepath/filename(沒有這樣的文件或目錄) 請幫我看看這個 – user3602058

+0

可能是你的文件路徑是錯誤。好吧告訴我你想要保存文件的位置。 –