編輯:關於android開發
Android 文件管理方法
Android使用的是基於Linux的文件系統,對於文件的訪問和管理是通過權限設置來限制的.
在Linux系統中,文件權限分別描述了創建者、同組用戶和其他用戶對文件的操作限制。
x表示可執行,r表示可讀,w表示可寫,d表示目錄,-表示普通文件。
產生這樣的文件權限與程序人員設定的
Android 存儲文件的類型
(內部存儲)程序開發人員可以建立和訪問程序自身的私有文件;
(資源存儲)可以訪問保存在資源目錄中的原始文件和XML文件;
(外部存儲)可以在SD卡等外部存儲設備中保存文件
Android系統允許應用程序創建僅能夠自身訪問的私有文件,文件保存在設備的內部存儲器上,在Linux系統下的/data/data/
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, intoff, intlen) :將數據讀入一個字節數組,同時返回實際讀取的字節數。如果返回-1,表示讀到了輸入流的末尾。off指定在數組b中存放數據的起始偏移位置;len指定讀取的最大字節數。
其它方法
long skip(longn) :在輸入流中跳過n個字節,並返回實際跳過的字節數。
int available() :返回在不發生阻塞的情況下,可讀取的字節數。
void close() :關閉輸入流,釋放和這個流相關的系統資源。
void mark(intreadlimit) :在輸入流的當前位置放置一個標記,如果讀取的字節數多於readlimit設置的值,則流忽略這個標記。
void reset() :返回到上一個標記。
boolean markSupported() :測試當前流是否支持mark和reset方法。如果支持,返回true,否則返回false。
三個基本的寫方法
abstract void write(intb) :往輸出流中寫入一個字節。
void write(byte[]b) :往輸出流中寫入數組b中的所有字節。
void write(byte[]b, intoff, intlen) :往輸出流中寫入數組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();//關閉流
讀文件
FileInputStream fis = null;//定義一個全局變量 fis = openFileInput(FILE_NAME);//打開要讀取的文件 if (fis.available() == 0){//判斷文件是否為空,為空就直接返回 return; } byte[] readBytes = new byte[fis.available()];//把文件裡的內容轉化為字節 while(fis.read(readBytes) != -1){//讀文件,直到讀到最後 } String text = new String(readBytes);//把讀到的字節轉化為字符串讀文件的第二種方法
String path = "/data/data/cn.itcast.file/files/writeable.txt";//得到文件路徑 File file = new File(path);//創建一個文件對象 FileInputStream inStream = new FileInputStream(file);//讀文件 byte[] buffer = new byte[1024];//緩存 int len = 0; ByteArrayOutputStream outStream = new ByteArrayOutputStream(); while( (len = inStream.read(buffer))!= -1){//直到讀到文件結束 outStream.write(buffer, 0, len); } byte[] data = outStream.toByteArray();//得到文件的二進制數據 outStream.close(); inStream.close(); Log.i(TAG, new String(data));
GsonFormat插件從配置到使用,gsonformat插件配置說明:目前多數服務器端都以json格式返回,那麼相對應的解析時建立的實體類如果你還在自己挨個寫的話,那就
環形進度條,圓形進度條本文參考借鑒http://blog.csdn.net/jdsjlzx/article/details/42497135 先上效果圖: 自定義控件:
HTML5矢量實現文件上傳進度條在HTML中,在文件上傳的過程中,很多情況都是沒有任何的提示,這在體驗上很不好,用戶都不知道到時有沒有在上傳、上傳成功了沒有,所以今天給大
Android系統在數據存儲和數據共享方面提供了多種方式,包括前面我們講過的使