2015-12-07 25 views
0

以下是我寫入數據到該文件時可調用的寫入方法的代碼片段。嘗試創建和寫入外部存儲器中的文本文件時收到異常(Android Studio)

公共無效寫入(字符串文件,字符串數據) {

File rootsd= Environment.getExternalStorageDirectory(); 
    File datafolder= new File(rootsd.getAbsolutePath()+"/Data"); 
    if(!datafolder.isDirectory()) 
    { 
     try 
     { 
      datafolder.mkdir(); 
     } 
     catch (Exception e) 
     { 
      Log.e("Error","Directory was not created"); 
     } 
    } 
    File datafile= new File(datafolder,file); 
    try { 
     if (!datafile.exists()) 
     { 
      datafile.createNewFile(); 
     } 
      writer = new BufferedWriter(new FileWriter(datafile)); 
      writer.write(data); 
      writer.close(); 
    } 
    catch (Exception e) { 
     Log.e("Error", "File not found"); 
    } 

} 

出於某種原因,這是自動去右轉入捕獲異常並返回文件未找到,我不太清楚是什麼問題是,我似乎無法找到一個解決方案在線。感謝所有幫助,謝謝!

編輯:logcat的例外

Caused by: java.io.IOException: open failed: ENOENT (No such file or directory) 
     at java.io.File.createNewFile(File.java:941) 
     at uwpsych.ocdstopwatch.Q1.Write(Q1.java:157) 
     at uwpsych.ocdstopwatch.Q1.SaveData(Q1.java:142) 

在java.lang.reflect.Method.invoke(本機方法)

+1

您是否在Manifest中定義了權限? –

+0

我在清單中有寫入權限,我是否也需要讀取權限? –

+0

不需要讀取權限。 –

回答

0

在你AndroidManifest.xml添加

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

,如果你想讀文件添加和

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

我實際上已經在我的清單中有第一部分了。我是否需要同時運行這些代碼?我想現在確實有道理,因爲我試圖檢查目錄和文件是否存在。我試試這個,回到你身邊。謝謝! –

+0

不,你不需要第二個,如果你不想讀取文件。運行你的代碼並運行...你可以發佈logcat來查看整個異常嗎? –

+0

你需要看到哪一部分logcat? –

相關問題