編輯:高級開發
51CTO推薦閱讀:android開發應用詳解
在android中文件的I/O是存放在/data/data/<package name>/file/filename目錄下。
提示:android是基於Linux系統的,在Linux的文件系統中不存在類似於Windows的磁盤分區現象,其是以一個正斜槓“/”開頭。
在android中,對於流的操作十分簡單。在Context類中有如下兩個方法可以直接得到文件輸入輸出流:
- public FileInputStream openFileInput (String name)
- public FileOutputStream openFileOutput (String name, int mode)
顧名思義,通過如上方法就可以得到文件輸入輸出流。對於第二個方法中的mode,有如下四種模式:
◆Use 0 or MODE_PRIVATE( the default Operation) :用0表示默認值,只能夠創建文件的應用程序訪問該文件,每次文件寫入為覆蓋方式。
◆MODE_APPEND to append to an existing file: 每次文件寫入為追加方式,類似於StringBuffer中的append()方法。
◆MODE_WORLD_READABLE :只有讀權限。
◆MODE_WORLD_WRITEABLE :只有寫權限。
提示:如果想同時得到讀與寫的權限,則可以在mode處通過如下方式創建:
- MODE_WORLD_READABLE+ MODE_WORLD_WRITEABLE
FileOutputStream:
public void write(byte[] b) throws IOException 該方法可將指定的字節數組寫入文件輸出流
FileInputStream:
public int read(byte[] b) throws IOException 從此輸入流中將最多 b.length 個字節的數據讀入一個 byte 數組中。在某些輸入可用之前,此方法將阻塞。
對於輸出流直接使用write方法即可,可參考如下代碼:
Java代碼
- <span style="white-space: pre;"> </span>/**
- * 寫入數據
- * @param fs
- * @param content
- */
- public void fileWrite(FileOutputStream fos,String content){
- byte[] contentcontentByteArray = content.getBytes();
- try {
- fos.write(contentByteArray);
- } catch (IOException e1) {
- e1.printStackTrace();
- }
- try {//關閉流
- fos.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
對於輸入流,出於性能考慮,可先使用ByteArrayOutputStream,向內存中創建一個字符數組,當將文件讀完後,在讀入,參考如下代碼:
Java代碼
- * 讀數據
- * @param fis
- * @return
- */
- public String fileRead(FileInputStream fis){
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- byte[] buffer = new byte[1024];
- int len = -1;
- try {
- while((len=(fis.read(buffer))) != -1){
- baos.write(buffer,0,len);
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- String result = new String(baos.toByteArray());
- //System.out.println(result);
- try {
- baos.close();
- fis.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- return result;
- }
ByteArrayOutputStream:此類實現了一個輸出流,其中的數據被寫入一個 byte 數組。
public void write(byte[] b,int off,int len) 將指定 byte 數組中從偏移量 off 開始的 len 個字節寫入此 byte 數組輸出流。
可參考代碼:FileIO 代碼下載
2010年10月25日,美國電腦軟件公司Adobe在 Adobe MAX 開發者大會上他們發布最新版本 Air 2.5(跨操作系統的運行時庫)。Adobe同時宣布將與
android開發語言在中國的前景十分廣闊,首先是有成熟的消費者,包括OPPO,中國移動,中國聯通,華為通訊,聯想等大企業都在關注這個操作系統,希望能給他們帶來更多的收
盡管很多人反感“android應該改名叫Java GE”這種說法,但是沒人能否認Java語言是android開發人員所選的必備工具。android運行時使用自己的虛擬機
在前文中我們介紹了android添加很多新功能,本文我們將介紹在android平台下,如何開發聊天客戶端Demo版軟件。由於時間關系,寫的斷斷續續,到現在也只是實現一部