2012-11-11 110 views
0

請幫助... 我已經在我的應用程序的第一個活動中創建了一個文本文件,這一切都工作正常。 在我的下一個活動中,我想追加到文本文件。錯誤寫入SD卡

但是當我嘗試追加捕捉拋出了以下錯誤..

mnt/scard/PatRecords/testfile.txt contains a file seperator 

,並沒有什麼添加到文件。

我的附加碼是..

try { 
    File directory = new File 
     (Environment.getExternalStorageDirectory().getPath()+"/PatRecords"); 

    FileOutputStream fOut = openFileOutput(directory.getPath()+"/"+FileName$, MODE_APPEND); 
     OutputStreamWriter OutWriter = new OutputStreamWriter(fOut); 


     OutWriter.write(TestNo$+"\n"); 
     OutWriter.write(Date$+"\n"); 

     OutWriter.close(); 
     fOut.close(); 

    } catch (Exception e) { 
     Toast.makeText(getBaseContext(), e.getMessage(), 
       Toast.LENGTH_SHORT).show(); 
     Error=1; 
    }//End of try/catch 

我曾試圖消除分隔符等,但仍然無法正常工作,並儘可能我可以看到 在catch錯誤顯示的路徑是正確的。 ..?

+0

你得到任何異常? SUB連接 - 僅收費? –

+0

顯示你的logcat錯誤 – Pratik

+0

嘗試從你的變量中刪除$符號。 – Yury

回答

1

openFileOutput()用於打開程序數據文件夾中的文件,該文件夾位於內部存儲器上,您可能只提供文件名,而不是路徑,因此投訴mnt/scard/PatRecords/testfile.txt contains a file separator。如果你想在SD卡上打開的文件

,你必須使用FileOutputStream()或類似的東西:

File of = new File(Environment.getExternalStorageDirectory(), filename); 
FileOutputStream fos = new FileOutputStream(file); 
fos.write(data); 
fos.flush(); 
fos.close(); 
+0

我試過上面的代碼,雖然它找到並打開正確的文件,但它現在已經寫入文件,不會添加到它。 – Coops5575

+0

Eclipse IDE不會讓我通過這種方式添加MODE_APPEND代碼 – Coops5575

+0

這是不同的問題,這已經在這裏解決了:http://stackoverflow.com/a/6209739/1329296 – lenik