首頁(yè)技術(shù)文章正文

Android+物聯(lián)網(wǎng)培訓(xùn)之用戶和文件權(quán)限

更新時(shí)間:2017-08-01 來源:黑馬程序員Android+物聯(lián)網(wǎng)培訓(xùn)學(xué)院 瀏覽量:

所謂用戶即在Android系統(tǒng)下每安裝一個(gè)應(yīng)用程序,系統(tǒng)就默認(rèn)該APP為一個(gè)新的用戶,也就是說你手機(jī)上的每一個(gè)APP都是一
個(gè)用戶。文件的權(quán)限我們已經(jīng)講述過,那么接下來我們將論述用戶與文件權(quán)限的關(guān)系。
在文件的權(quán)限中我們已經(jīng)新建了4個(gè)不同權(quán)限的文件,分別為私有的,可讀的,可寫的,可追加的。下面我們?cè)傩陆ㄒ粋€(gè)用戶(
即新建一個(gè)項(xiàng)目),在該項(xiàng)目中訪問上述新建文件的數(shù)據(jù)。
新建一個(gè)用戶
新建Android項(xiàng)目(other),使用系統(tǒng)自動(dòng)生成的布局文件,運(yùn)行程序如圖1-1所示
上圖表明另一個(gè)用戶已經(jīng)建成,接下來,我們就使用當(dāng)前新建的這個(gè)用戶來訪問文件權(quán)限這一項(xiàng)目中生成的4個(gè)文件,并將讀取
的數(shù)據(jù)打印出來。
編寫訪問代碼
在新建項(xiàng)目(other)中讀取另一個(gè)項(xiàng)目(文件權(quán)限)中的文件,編寫訪問代碼如例1-2:
例1-2  文件訪問
File file =
new File("/data/data/com.itheima.login2/files/private.dat");
FileInputStream fis = new FileInputStream(file);
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
System.out.println(br.readLine());
fis.close();
復(fù)制代碼
  訪問另一用戶(文件權(quán)限)私有文件,運(yùn)行程序,LogCat打印出如下圖1-2所示錯(cuò)誤信息:
由上可以得出結(jié)論:一個(gè)用戶訪問另一個(gè)用戶的私有文件是不被允許的,這個(gè)私有文件只能被自身用戶所訪問。
  訪問另一用戶(文件權(quán)限)的可讀文件,即將例1-1中的private.dat改為:readable.dat,運(yùn)行程序,LogCat打印出如圖
1-3所示的信息:
  訪問另一用戶的可寫文件,即將例1-1中的private.dat改為:writeable.dat,運(yùn)行程序,LogCat打印如圖1-4所示的信息
由上可以得出結(jié)論:一個(gè)用戶讀取另一個(gè)用戶的可寫文件是不被允許的,這個(gè)可寫文件自能被自身程序所訪問;但是當(dāng)一個(gè)用戶
編輯另一個(gè)用戶的可寫文件,這個(gè)操作是被允許的。
  訪問另一用戶的可追加文件,即將例1-1中的private.dat改為:append.dat,運(yùn)行程序,LogCat打印如圖1-5所示的信息
總結(jié):兩個(gè)用戶之間文件的訪問是受到限制的,能否訪問成功取決于該文件的權(quán)限。在一個(gè)用戶下新建一個(gè)文件,該文件在默認(rèn)
狀態(tài)下是私有的即不能被其它用戶所訪問,這樣設(shè)計(jì)的目的也是為了避免用戶的數(shù)據(jù)泄露


本文版權(quán)歸黑馬程序員Android+物聯(lián)網(wǎng)培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處。謝謝!
作者:黑馬程序員Android+物聯(lián)網(wǎng)培訓(xùn)學(xué)院
首發(fā):http://android.ithaima.com

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!