常用流

一、處理流

用于增強(qiáng)功能,提高性能。位于節(jié)點(diǎn)流之上

1.緩沖流

  • 字節(jié)緩沖流:
    • BufferdeInputStream
    • BufferedOutputStream
  • 字符緩沖流:
    • BufferedReader(新增readLine()方法)
    • BufferedWriter(新增newLine()方法)

要使用新增方法就不能用多態(tài)了
緩沖流使用方法:緩沖流(節(jié)點(diǎn)流) 包裹節(jié)點(diǎn)流。建議使用緩沖流提高性能。

字符緩沖流示例

public static void copy(File src, File dest) throws IOException {
        // 選擇流,這里測試新方法,聲明就不能用多態(tài)了。
        BufferedReader bread = new BufferedReader(new FileReader(src));
        BufferedWriter bwrite = new BufferedWriter(new FileWriter(dest));
        // 用來臨時(shí)儲存數(shù)據(jù)的字符串
        String str;
        // 操作,讀取在while里就讀了
        while (null != (str = bread.readLine())) {
            bwrite.write(str);
            // 類似于\r\n
            bwrite.newLine();
            // 刷新是個(gè)好習(xí)慣
            bwrite.flush();
        }
        // 關(guān)閉資源
        bwrite.close();
        bread.close();
    }

<br />

二、轉(zhuǎn)換流

字節(jié)流轉(zhuǎn)換為字符流,處理亂碼(編碼集,解碼集)

  • 輸入流:InputStreamReader(編碼)
  • 輸出流:OutputStreamWriter(解碼)

使用:轉(zhuǎn)換流(字節(jié)流) 即可轉(zhuǎn)為字符流來使用
編碼轉(zhuǎn)碼測試
算了,太簡單,直接看轉(zhuǎn)換流的程序。也是拷貝,同時(shí)使用了兩種流

public static void main(String[] args) throws IOException {
        File f=new File("F:/javaIotest/213.txt");
        File dest=new File("F:/javaIotest/詩歌.txt");
        //InputStreamReder和OutputStreamWriter 字節(jié)流轉(zhuǎn)換為字符流,可以在形參里選擇編碼|解碼集
        //這里選擇gbk即Ascall碼編碼,即讀取的文件是gbk格式的,如果不選擇直接使用utf-8的話會亂碼,怎么輸出都不對啦。讀取都錯(cuò)了
        BufferedReader is=new BufferedReader(new InputStreamReader(new FileInputStream(f)));
        //解碼使用默認(rèn)的平臺解碼,我這里是utf-8,可以選擇任何格式輸出。
        BufferedWriter os=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(dest)));
        String str;
        while(null!=(str=is.readLine())){
            os.write(str);
            os.newLine();
            os.flush();
        }
        os.close();
        is.close();
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、先看下必備知識: 1,流:系統(tǒng)內(nèi)部和外部進(jìn)行數(shù)據(jù)傳輸?shù)墓艿馈?2,內(nèi)部:內(nèi)存;外部:輸入設(shè)備,文件,網(wǎng)絡(luò)。 3...
    進(jìn)擊的王餅餅閱讀 1,838評論 1 4
  • 在經(jīng)過一次沒有準(zhǔn)備的面試后,發(fā)現(xiàn)自己雖然寫了兩年的android代碼,基礎(chǔ)知識卻忘的差不多了。這是程序員的大忌,沒...
    猿來如癡閱讀 3,122評論 3 10
  • 上節(jié)我們講到「Java中常用流:文件字節(jié)流和字節(jié)數(shù)組流」,本節(jié)我們繼續(xù)走起~ 緩沖流 BufferedInputS...
    全棧JAVA筆記閱讀 202評論 0 0
  • 上節(jié)我們講到「Java中常用流:文件字節(jié)流和字節(jié)數(shù)組流」,本節(jié)我們繼續(xù)走起~ 緩沖流 BufferedInputS...
    全棧JAVA筆記閱讀 229評論 0 0
  • 你不帥,很丑。 我們像戀人一樣,分享著彼此的悲傷歡喜。 但我們其實(shí)連朋友都不算。 犯賤的舉止總是那么可悲。 攢夠了...
    啊呸是個(gè)文明的稱呼閱讀 303評論 0 0

友情鏈接更多精彩內(nèi)容