Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android中的文件存儲技術

Android中的文件存儲技術

編輯:關於Android編程

文件存儲是每個系統都應該具有的功能,Android系統采用Java語言開發,所以它的文件存儲功能基本上和J2SE一樣的。為什麼會引入文件存儲?因為大文件、圖片等我們若只存儲在手機中很有限,一般都是用一個外存儲設備進行存儲。好了今天我們就講講用編程的方式在Android系統中進行存儲。

文件存儲的位置

一般文件默認存儲在/data/data/<包>/files/***.***(針對我們開發的APK的時候),當然我們也可以存儲在存儲卡上(這個時候需要在androidManifest.xml 設定文件的操作權限)。







openFileOutput() 寫入

在Activity組件中提供了此方法用於寫入文件數據,我們先看以下代碼,再做解釋:

public void store() {
try {
//獲取文件的輸出流
FileOutputStream out=this.openFileOutput("test.txt",Context.MODE_WORLD_READABLE);
//將界面上textboox1控件的值寫入到輸出文件流中
out.write(textboox1.getText().toString().getBytes());
//關閉文件流,數據保存成功
out.close();


} catch (FileNotFoundException e) {


return;


}


catch (IOException e){

return ;


}

}

從代碼中我們可以看到openFileOutput()有兩個參數,第一個是文件名,第二個則是文件的操作權限。它有以下操作權限:

Context.MODE_PRIVATE=0:為默認操作模式,代表該文件是私有數據,只能被應用本身訪問,在該模式下,寫入的內容會覆蓋原文件的內容,如果想把新寫入的內容追加到原文件中。可以使用Context.MODE_APPEND;
Context.MODE_APPEND = 32768:模式會檢查文件是否存在,存在就往文件追加內容,否則就創建新文件;
Context.MODE_WORLD_READABLE = 1:表示當前文件可以被其他應用讀取;
Context.MODE_WORLD_WRITEABLE= 2:表示當前文件可以被其他應用寫入;

如果想需要有讀寫權限,需要將Context.MODE_WORLD_READABLE+Context.MODE_WORLD_WRITEABLE表示。

openFileInput() 讀取

Activity組件提供了讀取的方法,默認的文件在/data/data/<包>/files/下,實例代碼如下:

public void onload()


{


try {
//文件輸入流
FileInputStream in=this.openFileInput("test.txt");


ByteArrayOutputStream stream=new ByteArrayOutputStream();


byte[] buffer=new byte[1024];


int length=-1;
//讀取數據並放在byte數組中
while((length=in.read(buffer))!=-1) {
//寫入byte文件流
stream.write(buffer,0,length);


}

stream.close();
in.close();
textboot1.setText(stream.toString());
} catch (FileNotFoundException e) {
e.printStackTrace();

}
catch (IOException e){


return ;


}
}

SDCard 數據存儲

前面已經講到數據在存儲到外部設備時候,需要設定其操作權限。以下的操作方式是我們在實際項目開發過程中常用到的。

//1.用於獲取SDCard的狀態,如果手機裝有SDCard,並且可以進行讀寫,那麼方法返回的狀態等於Environment.MEDIA_MOUNTED
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
//2.獲取SDCard目錄
File sdCardDir = Environment.getExternalStorageDirectory();
//3.在外部設備上創建 獲取文件
File saveFile = new File(sdCardDir, “test.txt”);
//文件存儲位置在/sdcard/test.txt
//等價於 File saveFile = new File("/sdcard/a.txt");

//4.文件輸出流
FileOutputStream outStream = new FileOutputStream(saveFile);

//5.寫入數據
outStream.write("test".getBytes());

//6.關閉文件輸出流
outStream.close();
}

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved