我已經研究了一段時間的這個問題,我只找到了非常複雜的答案,所以我很困惑。請記住,我不是一個專家程序員,所以不要指望我知道這件事!使用'FileWriter'在Android上的SD卡上寫入文本文件
所有我想要做的是打印字符的新行位於Android的SD卡的下載文件夾中的文本文件。我將模擬器設置爲擁有SD卡,並將文本文件放入下載文件夾中。這段代碼用於數據庫類,它將訪問SD卡中的文本文件以讀取數據。我知道這個類在Android之外工作,所以假設所有的方法都是按照他們應該讀取數據的方式工作的!
我得到一個IOException當我運行在另一類這個方法:
public void addRecordToDataBase(ChildRecord c) throws IOException
{
FileWriter outFile = new FileWriter("/mnt/sdcard/download/database.txt");
PrintWriter out = new PrintWriter(outFile);
out.println(c.printToDataBase());
out.close();
}
奇怪的是,我可以使用相同的路徑從數據庫只是在其他方法精細讀;那裏沒有問題。我只是不能寫信給它。我讀過一些地方,你可以使用「普通的Java方法」在Android上寫入SD卡,而不會在整個地方出現那些瘋狂的「OutputStream」事物。這是真的?我調試這件事情,並發現的是拋出異常的代碼行就在這裏:
FileWriter outFile = new FileWriter("/mnt/sdcard/download/database.txt");
如果任何人有任何想法,爲什麼我這個迷途IOException異常,我會很感激!我嘗試了所有Android想使用的瘋狂方法,但我認爲我迷失了方向,所以我只是恢復了我知道該怎麼做的方法。
非常感謝!
我看了看這個,它開始變得更有意義了。 getExternalFilesDir()和我之間有什麼區別?不getExternalFilesDir()獲取外部磁盤的路徑?我已經驗證我的代碼確實可以訪問外部磁盤(一張SD卡,我也應該澄清,這不需要在每部手機上工作,只需要一部特定的手機)。 – Thanizer