您好,登錄后才能下訂單哦!
Android中怎么讀寫文件,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
Android有一套自己的安全模型, 具體可參見Android開發文檔。當應用程序(.apk)在安裝時就會分配一個userid,當該應用要去訪問其他資源比如文件的時候,就需要userid匹配。默認情況下 ,任何應用創建的文件,數據庫, sharedpreferences都應該是私有的(位于/data/data/your_project/files/),其余程序無法訪問。除非在創建時指明是MODE_WORLD_READABLE 或者 MODE_WORLD_WRITEABLE,只要這樣其余程序才能正確訪問。
因為有這種Android讀寫文件的方法在安全上有所保障,進程打開文件時Android要求檢查進程的user id。所以不能直接用java的api來打開,因為java的io函數沒有提這個機制 。
無法用java的api直接打開程序私有的數據 ,默認路徑為/data/data/your_project/files/
FileReader file = new FileReader("Android.txt");
這里特別強調私有數據!言外之意是如果某個文件或者數據不是程序私有的,既訪問它時無須經過Android的權限檢查,那么還是可以用java的io api來直接訪問的。所謂的非私有數據是只放在sdcard上的文件或者數據,
可以用java的io api來直接打開sdcard上文件。
FileReader file = new FileReader("/sdcard/Android.txt");
如果要打開程序自己私有的文件和數據,那必須使用Activity提供openFileOutput和openFileInput方法。
創建程序私有的文件,由于權限方面的要求,必須使用activity提供的Android讀寫文件方法
FileOutputStream os = this.openFileOutput("Android.txt", MODE_PRIVATE); OutputStreamWriter outWriter = new OutputStreamWriter (os);
讀取程序私有的文件,由于權限方面的要求,必須使用activity提供的方法
FileInputStream os =this.openFileInput("Android.txt"); InputStreamReader inReader = new InputStreamReader(os);
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。