欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java的字節(jié)緩沖流與字符緩沖流解析

 更新時間:2023年11月01日 09:43:24   作者:追光而遇  
這篇文章主要介紹了Java的字節(jié)緩沖流與字符緩沖流解析,Java 緩沖流是Java I/O庫中的一種流,用于提高讀寫數(shù)據(jù)的效率,它通過在內(nèi)存中創(chuàng)建緩沖區(qū)來減少與底層設(shè)備的直接交互次數(shù),從而減少了I/O操作的開銷,需要的朋友可以參考下

高級流

  • 緩沖流
  • 轉(zhuǎn)換流
  • 序列化流
  • 打印流
  • 壓縮流
  • Commons-io

在這里插入圖片描述

緩沖流

基本流的效率太慢了,都加上緩沖區(qū)

在這里插入圖片描述

 字節(jié)緩沖流

原理:底層自帶了長度為8192的緩沖區(qū)提高性能

方法名稱說明
public BufferedInputStream(InputStream is)把基本流包裝成高級流,提高讀取數(shù)據(jù)的性能
public BufferedOutputStream(OutputStream os)把基本流包裝成高級流,提高讀取數(shù)據(jù)的性能

練習(xí):拷貝文件

  • 利用字節(jié)緩沖流拷貝文件(一次讀寫一個字節(jié))
public class BufferedStreamDemo1 {
    public static void main(String[] args) throws IOException {

        BufferedInputStream bis = new BufferedInputStream(new FileInputStream("/Users/jessy/Desktop/offer50/aaa/aaa.txt"));
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("/Users/jessy/Desktop/offer50/aaa/aaacopy.txt"));

        int b;
        while ((b = bis.read()) != -1) {
            bos.write(b);
        }
        
        bos.close();
        bis.close();
    }
}
  • 利用字節(jié)緩沖流拷貝文件(一次讀寫一個字節(jié)數(shù)組)
public class BufferedStreamDemo2 {
    public static void main(String[] args) throws IOException {
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream("/Users/jessy/Desktop/offer50/aaa/aaa.txt"));
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("/Users/jessy/Desktop/offer50/aaa/aaacopy.txt"));

        byte[] bytes = new byte[1024];
        int len;
        while ((len = bis.read(bytes)) != -1) {
            bos.write(bytes, 0, len);
        }

        bos.close();
        bis.close();
    }
}

字節(jié)緩沖流提高效率的原理

在這里插入圖片描述

字符緩沖流

原理:底層自帶了長度為8192的緩沖區(qū)提高性能

方法名稱說明
public BufferedReader(Reader r)把基本流變成高級流
public BufferedWriter(Writer r)把基本流變成高級流
  • 特有方法
字符緩沖輸入流特有方法說明
public String readLine()讀取一行數(shù)據(jù),如果沒有數(shù)據(jù)可讀了,會返回null
  •  細節(jié):
    • readLine方法在讀取的時候,一次讀一整行,遇到回車換行結(jié)束
    • 但是他不會把回車換行讀到內(nèi)存當(dāng)中
字符緩沖輸出流特有方法說明
public void newLine()跨平臺的換行 
public class BufferedStreamDemo3 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new FileReader("/Users/jessy/Desktop/offer50/aaa/aaa.txt"));

        String line;
        while (((line = br.readLine()) != null)) {
            System.out.println(line);
        }

        br.close();
    }
}
public class BufferedStreamDemo4 {
    public static void main(String[] args) throws IOException {
        BufferedWriter bw = new BufferedWriter(new FileWriter("/Users/jessy/Desktop/offer50/aaa/b.txt", true));

        bw.write("朵朵是貓貓呀!!");
        //換行
        bw.newLine();

        bw.write("可是你不是貓貓!");
        bw.newLine();

        bw.close();
    }
}

總結(jié)

  • 緩沖流有幾種?
    • 字節(jié)緩沖輸入流 BufferedInputStream
    • 字節(jié)緩沖輸出流 BufferedOutputStream
    • 字符緩沖輸入流 BufferedReader
    • 字符緩沖輸出流 BufferedWriter
  • 緩沖流為什么能提高性能
    • 緩沖自帶長度為8192的緩沖區(qū)
    • 可以顯著提高字節(jié)流的讀寫性能
    • 對于字符流提升不明顯,對于字符緩沖流而言關(guān)鍵點是兩個特有方法
  • 字符緩沖流兩個特有方法是什么?
    • 字符緩沖輸入流BufferedReader :readLine()
    • 字符緩沖輸出流 BufferedWriter:newLine()

到此這篇關(guān)于Java的字節(jié)緩沖流與字符緩沖流解析的文章就介紹到這了,更多相關(guān)Java的字節(jié)字符緩沖流內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java集成swagger文檔組件

    Java集成swagger文檔組件

    這篇文章主要介紹了Java集成swagger文檔組件,通過詳細的圖文介紹和代碼分析展示,從頭展開說明詳細的過程,希望對你的開發(fā)有所幫助
    2021-06-06
  • 一文詳解Spring?中的順序問題

    一文詳解Spring?中的順序問題

    本文主要介紹了Spring?中的順序問題,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • java OOM內(nèi)存泄漏原因及解決方法

    java OOM內(nèi)存泄漏原因及解決方法

    這篇文章主要介紹了java OOM內(nèi)存泄漏原因及解決方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-08-08
  • 輕松掌握Java備忘錄模式

    輕松掌握Java備忘錄模式

    這篇文章主要幫助大家輕松掌握Java備忘錄模式,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • Java中6種單例模式寫法代碼實例

    Java中6種單例模式寫法代碼實例

    這篇文章主要介紹了Java中6種單例模式寫法代碼實例,某個類任何情況下只有一個實例,并提供一個全局訪問點來獲取該實例,Java6種單例模式有2種懶漢式,2種餓漢式,靜態(tài)內(nèi)部類 ,枚舉類,需要的朋友可以參考下
    2024-01-01
  • 詳解Java的MyBatis框架中的緩存與緩存的使用改進

    詳解Java的MyBatis框架中的緩存與緩存的使用改進

    很多人在使用MyBatis的緩存后經(jīng)常會遇到MySQL分頁查詢的顯示問題,針對于此,這里我們就來詳解Java的MyBatis框架中的緩存與緩存的使用改進,首先來回顧一下MyBatis的緩存機制與執(zhí)行:
    2016-06-06
  • Java Objects工具類原理及用法詳解

    Java Objects工具類原理及用法詳解

    這篇文章主要介紹了Java Objects工具類原理及用法詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-08-08
  • 解決springboot項目找不到resources目錄下的資源問題

    解決springboot項目找不到resources目錄下的資源問題

    這篇文章主要介紹了解決springboot項目找不到resources目錄下的資源問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Java對象的序列化與反序列化詳解

    Java對象的序列化與反序列化詳解

    這篇文章主要為大家詳細介紹了Java對象的序列化與反序列化的相關(guān)資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • Spring源碼解析容器初始化構(gòu)造方法

    Spring源碼解析容器初始化構(gòu)造方法

    這篇文章主要介紹了Spring源碼解析容器初始化構(gòu)造方法,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-07-07

最新評論