天天看點

android 内部檔案讀取

android 檔案管理方法

android使用的是基于linux的檔案系統,對于檔案的通路和管理是通過權限設定來限制的.

在linux系統中,檔案權限分别描述了建立者、同組使用者和其他使用者對檔案的操作限制。

x表示可執行,r表示可讀,w表示可寫,d表示目錄,-表示普通檔案。

産生這樣的檔案權限與程式人員設定的

android 存儲檔案的類型

(内部存儲)程式開發人員可以建立和通路程式自身的私有檔案;

(資源存儲)可以通路儲存在資源目錄中的原始檔案和xml檔案;

(外部存儲)可以在sd卡等外部儲存設備中儲存檔案

android系統允許應用程式建立僅能夠自身通路的私有檔案,檔案儲存在裝置的内部存儲器上,在linux系統下的/data/data/<package name>/files目錄中

android系統不僅支援标準java的io類和方法,還提供了能夠簡化讀寫流式檔案過程的函數

fileoutputstream openfileoutput(string filename int mode)

fileinputstream openfileinput(string filename)

參數檔案不允許包含描述路徑的斜杠(其存儲位置固定)

通路模式:

mode_private 私有模式,缺陷模式,檔案僅能夠被檔案建立程式通路,或具有相同uid的程式通路。

mode_append 追加模式,如果檔案已經存在,則在檔案的結尾處添加新資料。

mode_world_readable 全局讀模式,允許任何程式讀取私有檔案。

mode_world_writeable 全局寫模式,允許任何程式寫入私有檔案。

三個基本的讀方法

abstract int read() :讀取一個位元組資料,并傳回讀到的資料,如果傳回-1,表示讀到了輸入流的末尾。

   int read(byte[] b) :将資料讀入一個位元組數組,同時傳回實際讀取的位元組數。如果傳回-1,表示讀到了輸入流的末尾。

   int read(byte[] b, int off, int len) :将資料讀入一個位元組數組,同時傳回實際讀取的位元組數。如果傳回-1,表示讀到了輸入流的末尾。off指定在數組b中存放資料的起始偏移位置;len指定讀取的最大位元組數。

其它方法

  long skip(long n) :在輸入流中跳過n個位元組,并傳回實際跳過的位元組數。

  int available() :傳回在不發生阻塞的情況下,可讀取的位元組數。

  void close() :關閉輸入流,釋放和這個流相關的系統資源。

  void mark(int readlimit) :在輸入流的目前位置放置一個标記,如果讀取的位元組數多于readlimit設定的值,則流忽略這個标記。

  void reset() :傳回到上一個标記。

  boolean marksupported() :測試目前流是否支援mark和reset方法。如果支援,傳回true,否則傳回false。

三個基本的寫方法

abstract void write(int b) :往輸出流中寫入一個位元組。

   void write(byte[] b) :往輸出流中寫入數組b中的所有位元組。

   void write(byte[] b, int off, int len) :往輸出流中寫入數組b中從偏移量off開始的len個位元組的資料。

  void flush() :重新整理輸出流,強制緩沖區中的輸出位元組被寫出。

  void close() :關閉輸出流,釋放和這個流相關的系統資源。

對檔案和流的操作容易引發異常,是以必須要用try-catch語句

主要核心代碼

首先是建立一個檔案

private final string file_name = "myfile01.txt";

寫檔案

fileoutputstream fos = null;//聲明一個全局變量

//注意下面的語句要進行抛異常處理filenotfoundexception e,ioexception e

fos = openfileoutput(file_name,context.mode_private);//寫流式檔案過程的

函數,這裡的權限是私有的

string text = entrytext.gettext().tostring();//把輸入的内容轉化為字元串

fos.write(text.getbytes());//把轉化為字元串的内容轉化為位元組,然後寫入

//下面語句寫在finally裡面

fos.flush();//把緩存裡的内容寫入到檔案

fos.close();//關閉流

讀檔案

讀檔案的第二種方法