天天看點

Android java.io.IOException異常情況整理前言open failed: EACCES (Permission denied)open failed: EISDIR (Is a directory)java.ioException:No such file or directory

前言

目前android上的絕大多數項目還是由JAVA開發的,而java最常見的異常之一就是java.io.IOException,這個異常我們在android開發中也會經常遇到,這裡整理了一些在Android開展法中常見的IOException情況,但在實際中,造成IOException異常的原因可能多種多樣,這裡我隻整理了幾種,歡迎大家留言讨論。

open failed: EACCES (Permission denied)

根據報錯資訊可知是因為權限錯誤導緻,解決辦法有以下幾種:

1.在AndroidMainfest.xml中添加上<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAG”/>權限;

2.如果還不行的時候可以試着在AndroidMainfest.xml中添加<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> 權限;

3.注意AndroidMainfest.xml檔案中權限的書寫位置:應該和<application>标簽節點同一級,而不要寫到<application>标簽中,這樣權限是不會生效的;

4.還有一種異常是我在查資料的時候發現的,有的手機在以磁盤模式連接配接電腦的時候,手機會暫時失去對sdcard/外存的讀寫權限,這時打開手機app就會發生這個權限異常的IOException。

open failed: EISDIR (Is a directory)

這個異常表明程式應該是對一個檔案進行操作,而你傳入程式的是一個檔案夾對象。

java.ioException:No such file or directory

表明程式指定讀寫的檔案不存在,或者對該目錄和檔案沒有讀寫權限,例如:app有自己的/data/data/packagename/下目錄和檔案的讀寫權限,而對其它包下的目錄和檔案是沒有讀寫權限的,除非你的app擷取了root權限。

繼續閱讀