成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Android開(kāi)發(fā)進(jìn)階:如何讀寫(xiě)Android文件

移動(dòng)開(kāi)發(fā) Android
Android文件的運(yùn)行主要需要讀寫(xiě)四大組件的文件。本文將介紹如何讀寫(xiě)Android文件,希望對(duì)正在進(jìn)行Android開(kāi)發(fā)的朋友有所幫助。

51CTO編者按:Android主要有四大主要組件組成:Activity、ContentProvider、Service、Intent組成。Android文件的運(yùn)行主要需要讀寫(xiě)四大組件的文件。本文將介紹如何讀寫(xiě)Android文件,希望對(duì)正在進(jìn)行Android開(kāi)發(fā)的朋友有所幫助。

51CTO推薦閱讀:Android開(kāi)發(fā)應(yīng)用詳解

文件存放位置

在Android中文件的I/O是存放在/data/data/<package name>/file/filename目錄下。

提示:Android是基于linux系統(tǒng)的,在linux的文件系統(tǒng)中不存在類(lèi)似于Windows的磁盤(pán)分區(qū)現(xiàn)象,其是以一個(gè)正斜杠“/”開(kāi)頭。

Android中得到輸入輸出流

在Android中,對(duì)于流的操作十分簡(jiǎn)單。在Context類(lèi)中有如下兩個(gè)方法可以直接得到文件輸入輸出流:

  1. public FileInputStream   openFileInput  (String name)  
  2. public FileOutputStream   openFileOutput  (String name, int mode)  

顧名思義,通過(guò)如上方法就可以得到文件輸入輸出流。對(duì)于第二個(gè)方法中的mode,有如下四種模式:

◆Use 0 or MODE_PRIVATE( the default operation) :用0表示默認(rèn)值,只能夠創(chuàng)建文件的應(yīng)用程序訪問(wèn)該文件,每次文件寫(xiě)入為覆蓋方式。

◆MODE_APPEND to append to an existing file: 每次文件寫(xiě)入為追加方式,類(lèi)似于StringBuffer中的append()方法。

◆MODE_WORLD_READABLE  :只有讀權(quán)限。

◆MODE_WORLD_WRITEABLE :只有寫(xiě)權(quán)限。

提示:如果想同時(shí)得到讀與寫(xiě)的權(quán)限,則可以在mode處通過(guò)如下方式創(chuàng)建:

  1. MODE_WORLD_READABLE+ MODE_WORLD_WRITEABLE 

對(duì)于Java SE部分的補(bǔ)充

FileOutputStream:

public void write(byte[] b) throws IOException 該方法可將指定的字節(jié)數(shù)組寫(xiě)入文件輸出流

FileInputStream:

public int read(byte[] b) throws IOException 從此輸入流中將最多 b.length 個(gè)字節(jié)的數(shù)據(jù)讀入一個(gè) byte 數(shù)組中。在某些輸入可用之前,此方法將阻塞。

對(duì)于輸出流直接使用write方法即可,可參考如下代碼:

Java代碼

  1. <span style="white-space: pre;">    </span>/**   
  2.           * 寫(xiě)入數(shù)據(jù)   
  3.           * @param fs   
  4.           * @param content   
  5.           */    
  6.          public void fileWrite(FileOutputStream fos,String content){    
  7.                    byte[] contentcontentByteArray = content.getBytes();    
  8.                    try {    
  9.                             fos.write(contentByteArray);    
  10.                    } catch (IOException e1) {    
  11.                             e1.printStackTrace();    
  12.                    }    
  13.                    try {//關(guān)閉流    
  14.                             fos.close();    
  15.                    } catch (IOException e) {    
  16.                             e.printStackTrace();    
  17.                    }    
  18.          }    
  19.  

對(duì)于輸入流,出于性能考慮,可先使用ByteArrayOutputStream,向內(nèi)存中創(chuàng)建一個(gè)字符數(shù)組,當(dāng)將文件讀完后,在讀入,參考如下代碼:

Java代碼

  1.           * 讀數(shù)據(jù)    
  2.           * @param fis    
  3.           * @return    
  4.           */    
  5.          public String fileRead(FileInputStream fis){    
  6.                    ByteArrayOutputStream baos = new ByteArrayOutputStream();    
  7.                    byte[] buffer = new byte[1024];    
  8.                    int len = -1;    
  9.                    try {    
  10.                             while((len=(fis.read(buffer))) != -1){    
  11.                                      baos.write(buffer,0,len);    
  12.                             }    
  13.                    } catch (IOException e) {    
  14.                             e.printStackTrace();    
  15.                    }    
  16.                    String result = new String(baos.toByteArray());    
  17. //System.out.println(result);                    
  18.                    try {    
  19.                             baos.close();    
  20.                             fis.close();    
  21.                    } catch (IOException e) {    
  22.                             e.printStackTrace();    
  23.                    }    
  24.                    return result;    
  25.          }    

ByteArrayOutputStream:此類(lèi)實(shí)現(xiàn)了一個(gè)輸出流,其中的數(shù)據(jù)被寫(xiě)入一個(gè) byte 數(shù)組。

 public void write(byte[] b,int off,int len) 將指定 byte 數(shù)組中從偏移量 off 開(kāi)始的 len 個(gè)字節(jié)寫(xiě)入此 byte 數(shù)組輸出流。

可參考代碼:FileIO 代碼下載

【編輯推薦】

  1. 十二張大圖詳解如何在Eclipse上搭建Android 2.3環(huán)境
  2. 圖詳解Android 2.3 SDK安裝教程
  3. Android平臺(tái)SQLite快速入門(mén)實(shí)踐
  4. Android開(kāi)發(fā)中AsyncTask實(shí)現(xiàn)異步處理任務(wù)的方法
  5. Android開(kāi)發(fā)中實(shí)現(xiàn)多點(diǎn)觸摸的方法
責(zé)任編輯:佚名 來(lái)源: javaeye
相關(guān)推薦

2013-12-27 09:54:58

Android開(kāi)發(fā)NDK

2011-05-03 15:28:15

BlackBerryWidget

2014-01-07 14:53:37

Android開(kāi)發(fā)依賴注入Roboguice

2011-10-18 10:17:39

Android應(yīng)用開(kāi)發(fā)

2011-10-18 10:25:08

Android應(yīng)用開(kāi)發(fā)

2009-04-30 09:02:53

AcerAndroid開(kāi)發(fā)

2012-02-07 10:05:40

jQuery MobijQuery Mobi

2011-08-17 16:23:31

iPhone開(kāi)發(fā)UIViewContr

2011-08-17 16:29:12

iPhone開(kāi)發(fā)UIButton

2021-01-20 08:16:06

異步Dotnet Core多路徑

2017-03-10 16:24:50

Android讀寫(xiě)Word讀寫(xiě)PDF

2013-01-23 14:42:26

Android開(kāi)發(fā)NFC

2019-07-09 09:48:41

前端開(kāi)發(fā)技術(shù)

2011-08-17 16:16:29

iPhone應(yīng)用程序啟動(dòng)過(guò)程

2011-08-17 16:12:20

iPhone應(yīng)用程序

2010-01-26 17:18:13

Android讀寫(xiě)文件

2015-03-12 11:11:32

程序員

2013-06-09 10:18:29

Android開(kāi)發(fā)XML讀寫(xiě)XML解析

2013-06-09 10:25:56

Android開(kāi)發(fā)XML讀寫(xiě)XML解析

2013-06-09 10:37:53

Android開(kāi)發(fā)XML讀寫(xiě)XML解析
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产免费一二三区 | 免费成人高清在线视频 | 欧美亚洲综合久久 | 日韩伦理一区二区三区 | 黄片毛片免费看 | 日韩精品免费一区 | 国产传媒在线观看 | 亚洲精品日韩在线 | 国户精品久久久久久久久久久不卡 | 麻豆精品一区二区三区在线观看 | 日本淫视频 | 欧美福利 | 91传媒在线观看 | 一区二区精品 | 免费一区在线观看 | 欧美精品一区二区三区蜜桃视频 | 99久久99 | 免费看国产精品视频 | 国产激情91久久精品导航 | 97精品久久 | 国户精品久久久久久久久久久不卡 | 在线第一页 | 中文亚洲字幕 | 国产精品久久久久无码av | 国产一二三区精品视频 | 欧美日韩综合精品 | 99爱视频| 国产一区二区免费 | 黄色在线免费观看视频网站 | 免费国产一区二区 | 亚洲精品一区二三区不卡 | 欧美日韩亚洲一区 | 国产精品久久久久一区二区三区 | 日韩精品成人一区二区三区视频 | 精品福利一区二区三区 | 国产精品久久久久久av公交车 | 国产成人精品久久 | 一本色道久久综合亚洲精品高清 | 精品一区二区电影 | 色网站视频 | 91九色porny首页最多播放 |