安卓向sd卡寫文件出現的問題

安卓寫文件時,一直創建不成功,沒有紅色錯誤提示,在調試過程中出現好多問題,如source not found,Class file editor source not found,Factoryorg.eclipse.jdt.ui.ClassFileEditorInputFactory returned null from createElementfor editor id=org.eclipse.jdt.ui.ClassFileEditor name=null等,始終找不到問題所在,最後調試中發現程序運行到createNewFile時,日誌中產生如下警告:

java.io.IOException: open failed: EROFS (Read-only file system)---只讀文件系統




問題陳述

配置文件AndroidManifest中已加入權限操作,可以生成文件夾,就是生成文件時出現上述異常(警告),可以運行,但是沒有文件生成。


問題分析

能夠建立文件夾則有讀寫權限,考慮是路徑的問題不合法,所以才訪問不到。

解決方案:

保存到sd卡下的sign文件夾。

原來語句:

File file = new File(Environment.getExternalStorageDirectory().getPath()+"/sign/"+filename);

修改爲:

File file = new File(Environment.getExternalStorageDirectory().getPath()+"/sign/",filename);



File類構造函數: 
public File(File dir,String name)--File制定構造的新的File對象的路徑,而String制定新的File名字
Public File(String path)--String,構造一個新的File使用制定的路徑(文件夾)
public File(String dirPath,String name)--dirPath爲指定的文件路徑,name爲文件的名字
public File(URI uri)--構造新的文件使用URI指定路徑

總結:最終發現是自己構造函數調用錯誤,誤以爲幾種構造函數可以實現相同的功能。
具體如何創建文件夾、文件見下文。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章