真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

android文件的讀寫,android文件讀寫權(quán)限

android本地文件的讀寫是不是配置文件的讀寫

不是,本地文件的讀寫是指手機(jī)內(nèi)部文件(手機(jī)本身自帶的文件或內(nèi)存卡的文件)讀寫!你說(shuō)的配置文件的讀寫可以理解成其中的一部分。而且android對(duì)不同文件的讀取方式也有不同,如果是工程內(nèi)的配置文件讀寫的話會(huì)有專門的api去讀取,如果是工程外文件直接使用JAVA中FILE類加載手機(jī)路徑進(jìn)行讀寫!在讀寫時(shí)應(yīng)該給該工程加上讀寫文件的權(quán)限?。?!

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、微信平臺(tái)小程序開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了奉賢免費(fèi)建站歡迎大家使用!

Android開(kāi)發(fā)之如何讀寫文件

【轉(zhuǎn)】

首先介紹如何存儲(chǔ)數(shù)據(jù),顯然,要將數(shù)據(jù)從應(yīng)用中輸出到文件中,必須得到一個(gè)輸出流outPutStream,然后往輸出流中寫入數(shù)據(jù),在這里Android自帶了一個(gè)得到應(yīng)用輸出流的方法

FileOutputStream fos =context.openFileOutput(“yuchao.txt”,Context.MODE_PRIVATE); ?(1)

其中第一個(gè)屬性為文件名,第二個(gè)屬性為讀寫模式(有關(guān)讀寫模式的說(shuō)明下面將詳細(xì)闡述),

然后在文件輸出流fos中便可以寫入數(shù)據(jù)

Fos.write(“Hi,”I’m Chao Yu!”.getBytes());

用完文件輸出流之后記得關(guān)閉

fos.close();

這樣,在/data/data/packageName/file目錄下就生成了一個(gè)文件名為yuchao.txt的文件,文件中的內(nèi)容為” Hi,I’m Chao Yu!”

有關(guān)(1)中讀寫模式其實(shí)就是制定創(chuàng)建文件的權(quán)限以及在讀寫的時(shí)候的方式,Android中提供了以下幾種讀寫模式

Context.MODE_PRIVATE ? ?= ?0

該模式下創(chuàng)建的文件其他應(yīng)用無(wú)權(quán)訪問(wèn),并且本應(yīng)用將覆蓋原有的內(nèi)容

Context.MODE_APPEND ? ?= ?32768

該模式下創(chuàng)建的文件其他應(yīng)用無(wú)權(quán)訪問(wèn),并且本應(yīng)用將在原有的內(nèi)容后面追加內(nèi)容

Context.MODE_WORLD_READABLE = ?1

該模式下創(chuàng)建的文件其他應(yīng)用有讀的權(quán)限

Context.MODE_WORLD_WRITEABLE = ?2

該模式下創(chuàng)建的文件其他應(yīng)用有寫的權(quán)限

如果需要將文件設(shè)置為外部應(yīng)用可以讀寫,可將讀寫模式設(shè)置為Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE

一般情況下,各個(gè)應(yīng)用維護(hù)的數(shù)據(jù)都在一個(gè)特定的文件夾中,即上面所提到的/data/data/packageName/file(存在于手機(jī)存儲(chǔ)中),但手機(jī)內(nèi)存畢竟有限,所以有些情況下,我們需要往SD卡中寫入數(shù)據(jù)文件,這其實(shí)和普通的java web 應(yīng)用步驟一樣,都是先創(chuàng)建特針對(duì)特定目錄特定文件的輸出流,然后往輸出流中寫數(shù)據(jù),這里要注意一個(gè)方法,就是獲取SD卡根目錄的方法,隨著Android系統(tǒng)不斷升級(jí),SD卡的根目錄隨時(shí)都有可能改變,Android中得到SD卡根目錄的方法是

File sdCardDir = Environment.getExternalStorageDirectory();

然后就可以進(jìn)行下面的步驟

File saveFile = new File(sdCardDir, “yuchao.txt”);

FileOutputStream outStream = new FileOutputStream(saveFile);

outStream.write("Hi,I’m ChaoYu".getBytes());

outStream.close();

值得注意的是,在往SD卡中寫數(shù)據(jù)的時(shí)候,健壯的代碼必須考慮SD卡不存在或者寫保護(hù)的情況,故在寫入之前,先做判斷

if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){

……

}

接著,我們來(lái)學(xué)習(xí)下我們的應(yīng)用程序如何讀取文件中的數(shù)據(jù),其實(shí)就是寫的逆向過(guò)程

若要讀取應(yīng)用程序默認(rèn)維護(hù)的文件(即/data/data/packageName/file目錄下的文件),首先得到文件輸入流

FileInputStream istream = this.context.openFileInput(“yuchao.txt”);

然后在內(nèi)存中開(kāi)辟一段緩沖區(qū)

byte[] buffer = new byte[1024];

然后創(chuàng)建一個(gè)字節(jié)數(shù)組輸出流

ByteArrayOutputStream ostream = new ByteArrayOutputStream();

讀出來(lái)的數(shù)據(jù)首先放入緩沖區(qū),滿了之后再寫到字符輸出流中

while((len=istream.read(buffer))!=-1){

ostream.write(buffer, 0, len);

}

最后關(guān)閉輸入流和輸出流

istream.close();

ostream.close();

將得到的內(nèi)容以字符串的形式返回便得到了文件中的內(nèi)容了,這里的流操作較多,故以一張圖片來(lái)說(shuō)明,見(jiàn)圖1

return new String(ostream.toByteArray());

從SD卡中讀取數(shù)據(jù)與上述兩個(gè)步驟類似,故不再贅述,留給讀者自己思考

如在開(kāi)發(fā)過(guò)程中進(jìn)行SD卡地讀寫,切忌忘了加入權(quán)限

uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /

uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/

至此,Android系統(tǒng)中有關(guān)文件數(shù)據(jù)的讀寫介紹完畢。

Android 中的文件讀寫操作

IO流(操作文件內(nèi)容): 字節(jié)流

參考:

AssetManager

assets 文件夾用于存儲(chǔ)應(yīng)用需要的文件,在安裝后可直接從其中讀取使用或者寫入本地存儲(chǔ)中

Android Studio 默認(rèn)不建立該文件夾,可以手動(dòng)新建 : app - src - main - assets

或者,右鍵 main - New - Folder - Assets Folder

AssetManager 對(duì)象可以直接訪問(wèn)該文件夾:

獲取方法:

使用函數(shù) open 可以打開(kāi) assets 文件夾中對(duì)象,返回一個(gè) InputStream 對(duì)象:

open

獲取方法:

Android TXT文件讀寫

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

String fileName = "/sdcard/y.txt";//文件路徑

// 也可以用String fileName = "mnt/sdcard/Y.txt";

String res = "";

try {

FileInputStream fin = new FileInputStream(fileName);

// FileInputStream fin = openFileInput(fileName);

// 用這個(gè)就不行了,必須用FileInputStream

int length = fin.available();

byte[] buffer = new byte[length];

fin.read(buffer);

res = EncodingUtils.getString(buffer, "UTF-8");////依Y.txt的編碼類型選擇合適的編碼,如果不調(diào)整會(huì)亂碼

fin.close();//關(guān)閉資源

System.out.println("res---"+res);

int a=Integer.parseInt(res.substring(3, 5));

int b=Integer.parseInt(res.substring(8, 10));

System.out.println(a+"res---"+b);//獲取的a.b

} catch (Exception e) {

e.printStackTrace();

}

}

希望能解決您的問(wèn)題。

如何讀寫Android文件

在android中的文件放在不同位置,它們的讀取方式也有一些不同。

本文對(duì)android中對(duì)資源文件的讀取、數(shù)據(jù)區(qū)文件的讀取、SD卡文件的讀取及RandomAccessFile的方式和方法進(jìn)行了整理。供參考。


本文題目:android文件的讀寫,android文件讀寫權(quán)限
鏈接分享:http://weahome.cn/article/hoojdj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部