溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Android中如何讀寫文件

發(fā)布時間:2021-07-20 14:50:30 來源:億速云 閱讀:147 作者:Leah 欄目:移動開發(fā)

這篇文章將為大家詳細講解有關(guān)Android中如何讀寫文件,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

文件存放位置

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

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

Android中得到輸入輸出流

在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)建文件的應(yīng)用程序訪問該文件,每次文件寫入為覆蓋方式。

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

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

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

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

MODE_WORLD_READABLE+ MODE_WORLD_WRITEABLE

對于Java SE部分的補充

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代碼

<span style="white-space: pre;">    </span>/**             * 寫入數(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 {//關(guān)閉流                                fos.close();                       } catch (IOException e) {                                e.printStackTrace();                       }             }

對于輸入流,出于性能考慮,可先使用ByteArrayOutputStream,向內(nèi)存中創(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ù)組輸出流。

關(guān)于Android中如何讀寫文件就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI