這篇文章將為大家詳細講解有關Android中如何讀寫文件,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
成都創(chuàng)新互聯(lián)公司專注于企業(yè)營銷型網(wǎng)站建設、網(wǎng)站重做改版、新羅網(wǎng)站定制設計、自適應品牌網(wǎng)站建設、HTML5建站、成都做商城網(wǎng)站、集團公司官網(wǎng)建設、成都外貿網(wǎng)站制作、高端網(wǎng)站制作、響應式網(wǎng)頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為新羅等各大城市提供網(wǎng)站開發(fā)制作服務。
在Android中文件的I/O是存放在/data/data/
提示:Android是基于linux系統(tǒng)的,在linux的文件系統(tǒng)中不存在類似于Windows的磁盤分區(qū)現(xiàn)象,其是以一個正斜杠“/”開頭。
在Android中,對于流的操作十分簡單。在Context類中有如下兩個方法可以直接得到文件輸入輸出流:
public FileInputStream openFileInput (String name) public FileOutputStream openFileOutput (String name, int mode)
顧名思義,通過如上方法就可以得到文件輸入輸出流。對于第二個方法中的mode,有如下四種模式:
◆Use 0 or MODE_PRIVATE( the default operation) :用0表示默認值,只能夠創(chuàng)建文件的應用程序訪問該文件,每次文件寫入為覆蓋方式。
◆MODE_APPEND to append to an existing file: 每次文件寫入為追加方式,類似于StringBuffer中的append()方法。
◆MODE_WORLD_READABLE :只有讀權限。
◆MODE_WORLD_WRITEABLE :只有寫權限。
提示:如果想同時得到讀與寫的權限,則可以在mode處通過如下方式創(chuàng)建:
MODE_WORLD_READABLE+ MODE_WORLD_WRITEABLE
FileOutputStream:
public void write(byte[] b) throws IOException 該方法可將指定的字節(jié)數(shù)組寫入文件輸出流
FileInputStream:
public int read(byte[] b) throws IOException 從此輸入流中將最多 b.length 個字節(jié)的數(shù)據(jù)讀入一個 byte 數(shù)組中。在某些輸入可用之前,此方法將阻塞。
對于輸出流直接使用write方法即可,可參考如下代碼:
Java代碼
/** * 寫入數(shù)據(jù) * @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,向內存中創(chuàng)建一個字符數(shù)組,當將文件讀完后,在讀入,參考如下代碼:
Java代碼
* 讀數(shù)據(jù) * @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:此類實現(xiàn)了一個輸出流,其中的數(shù)據(jù)被寫入一個 byte 數(shù)組。
public void write(byte[] b,int off,int len) 將指定 byte 數(shù)組中從偏移量 off 開始的 len 個字節(jié)寫入此 byte 數(shù)組輸出流。
關于Android中如何讀寫文件就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。