Android讀寫文件正確實行方法介紹
Android開源手機操作系統可以讓開發人員在模擬器中進行相應的操作以使系統滿足用戶的各種需求。在這里我們可以通過對Android讀寫文件的相關操作來體驗一下這款操作系統的編寫方式。#t#
眾所周知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);
Android讀寫文件的相關操作就為大家介紹到這里。