溫馨提示×

溫馨提示×

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

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

java IO流常用操作之字節(jié)流和字符流的示例分析

發(fā)布時(shí)間:2021-11-03 10:55:00 來源:億速云 閱讀:198 作者:小新 欄目:編程語言

這篇文章將為大家詳細(xì)講解有關(guān)java IO流常用操作之字節(jié)流和字符流的示例分析,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

一.主要IO流的分類

java IO流常用操作之字節(jié)流和字符流的示例分析

通過圖可知java 中主要IO流根據(jù)處理數(shù)據(jù)類型的不同分為字符流和字節(jié)流,根據(jù)數(shù)據(jù)流向不同分為輸入流和輸出流。

二. 使用場景

1.考慮最原始的數(shù)據(jù)格式是什么:
場景一. 原始數(shù)據(jù)是二進(jìn)制或者是純文本,使用方式如下:
(1). 二進(jìn)制格式(只要不能確定是純文本的):InputStream,OutputStream及其子類(字節(jié)流)。

(2). 純文本格式(含純英文與漢字或其他編碼方式):Reader,Writer及其子類(字符流)。

場景二:IO數(shù)據(jù)流通道:

(1). 輸入:Reader,InputStream類型的子類。

(2). 輸出:Writer,OutputStream類型的子類。

場景三:IO流轉(zhuǎn)換:

(1). 字節(jié)到字符:InputStreamReader

(2). 字符到字節(jié):OutputStreamWriter

場景四:數(shù)據(jù)來源流向:

(1). 文件:FileInputStream,FileOutputStream ; FileReader,FileWriter

(2). byte[]: ByteArrayInputStream, ByteArrayOutputStream

(3).Char[]:CharArrayReader,CharArrayWriter

(4).String:StringBufferInputStream,StringBufferOutputStream;StringReader,StringWriter

(5).網(wǎng)絡(luò)數(shù)據(jù)流:InputStream,OutputStream;Reader,Writer

場景五:緩沖:(要注意readLine()是否有定義,有什么比read(),writer()更特殊的輸入或輸出方法)

要緩沖:BufferedInputStream, BufferedOutputStream; BufferedReader, BufferedWriter

場景六:格式化輸出:

格式化輸出:PrintStream, PrintWriter

三.主要字節(jié)流常用方法
(1).InputStream字節(jié)流

    // 從輸入流中讀取數(shù)據(jù)的下一個(gè)字節(jié)
    abstract int read()
    // 從輸入流中讀取一定數(shù)量的字節(jié),并將其存儲在緩沖區(qū)數(shù)組 b中
    int read(byte[] b)
    // 將輸入流中最多 len 個(gè)數(shù)據(jù)字節(jié)讀入 byte 數(shù)組
    int read(byte[] b, int off, int len)


    // 跳過和丟棄此輸入流中數(shù)據(jù)的 n個(gè)字節(jié)
    long skip(long n)

    // 關(guān)閉此輸入流并釋放與該流關(guān)聯(lián)的所有系統(tǒng)資源
    void close()

(2).OutputStream字節(jié)流

    
    // 將 b.length 個(gè)字節(jié)從指定的 byte 數(shù)組寫入此輸出流
    void write(byte[] b)
    // 將指定 byte 數(shù)組中從偏移量 off 開始的 len 個(gè)字節(jié)寫入此輸出流
    void write(byte[] b, int off, int len)
    // 將指定的字節(jié)寫入此輸出流
    abstract void write(int b)

    // 關(guān)閉此輸出流并釋放與此流有關(guān)的所有系統(tǒng)資源
    void close()

    // 刷新此輸出流并強(qiáng)制寫出所有緩沖的輸出字節(jié)
    void flush()

四.主要字符流常用方法
(1). Reader

    
    // 讀取單個(gè)字符
    int read()
    // 將字符讀入數(shù)組
    int read(char[] cbuf)
    // 將字符讀入數(shù)組的某一部分
    abstract int read(char[] cbuf, int off, int len)
    // 跳過字符
    long skip(long n)

    // 關(guān)閉該流并釋放與之關(guān)聯(lián)的所有資源
    abstract void close()

(2). Writer

      // 寫入字符數(shù)組
     void write(char[] cbuf)
    // 寫入字符數(shù)組的某一部分
    abstract void write(char[] cbuf, int off, int len)
    // 寫入單個(gè)字符
    void write(int c)
    // 寫入字符串
    void write(String str)
    // 寫入字符串的某一部分
    void write(String str, int off, int len)

    // 將指定字符添加到此 writer
    Writer append(char c)
    // 將指定字符序列添加到此 writer
    Writer append(CharSequence csq)
    // 將指定字符序列的子序列添加到此 writer.Appendable
    Writer append(CharSequence csq, int start, int end)

    // 關(guān)閉此流,但要先刷新它
    abstract void close()
    // 刷新該流的緩沖
    abstract void flush()

關(guān)于“java IO流常用操作之字節(jié)流和字符流的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯(cuò),請把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

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

AI