最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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
  •  細(xì)節(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)文章

  • windows10 JDK安裝及配置環(huán)境變量與Eclipse安裝教程

    windows10 JDK安裝及配置環(huán)境變量與Eclipse安裝教程

    這篇文章主要介紹了windows10 JDK安裝及配置環(huán)境變量與Eclipse安裝,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-10-10
  • java多線程復(fù)制文件的實例代碼

    java多線程復(fù)制文件的實例代碼

    java多線程復(fù)制文件的實例代碼,需要的朋友可以參考一下
    2013-03-03
  • SpringBoot中定制異常頁面的實現(xiàn)方法

    SpringBoot中定制異常頁面的實現(xiàn)方法

    這篇文章主要介紹了SpringBoot中定制異常頁面的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Mybatis實現(xiàn)自定義的typehandler三步曲

    Mybatis實現(xiàn)自定義的typehandler三步曲

    這篇文章主要介紹了Mybatis實現(xiàn)自定義的typehandler三步曲的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-07-07
  • 如何解決java.net.BindException:地址已在使用問題

    如何解決java.net.BindException:地址已在使用問題

    當(dāng)Zookeeper啟動報錯“java.net.BindException:地址已在使用”時,通常是因為指定的端口已被其他進(jìn)程占用,解決這個問題需要按照以下步驟操作:首先,使用命令如lsof -i:2181找到占用該端口的進(jìn)程號;其次,使用kill命令終止該進(jìn)程
    2024-09-09
  • Spring之SseEmitter實現(xiàn)讓你的進(jìn)度條實時更新

    Spring之SseEmitter實現(xiàn)讓你的進(jìn)度條實時更新

    Spring SseEmitter是一種實現(xiàn)服務(wù)器端推送事件(SSE)的機制,支持單向通信,適用于實時數(shù)據(jù)傳輸需求,通過代碼示例和應(yīng)用場景分析,展示了如何在服務(wù)端和客戶端使用SseEmitter進(jìn)行實時數(shù)據(jù)推送
    2025-02-02
  • Spring Cloud Ribbon實現(xiàn)客戶端負(fù)載均衡的示例

    Spring Cloud Ribbon實現(xiàn)客戶端負(fù)載均衡的示例

    本篇文章主要介紹了Spring Cloud Ribbon實現(xiàn)客戶端負(fù)載均衡的示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • MyBatisPlus項目的創(chuàng)建和使用

    MyBatisPlus項目的創(chuàng)建和使用

    本文介紹了MyBatis-Plus的基本使用方法,包括項目的創(chuàng)建和配置、增刪查改操作、日志打印以及條件構(gòu)造器的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-11-11
  • 關(guān)于SpringBoot集成Lettuce連接Redis的方法和案例

    關(guān)于SpringBoot集成Lettuce連接Redis的方法和案例

    這篇文章主要介紹了關(guān)于SpringBoot集成Lettuce連接Redis的方法和案例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • MybatisPlus #{param}和${param}的用法詳解

    MybatisPlus #{param}和${param}的用法詳解

    這篇文章主要介紹了MybatisPlus #{param}和${param}的用法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09

最新評論

甘南县| 霍城县| 洞口县| 永州市| 平罗县| 韶山市| 徐闻县| 宣武区| 鹰潭市| 沈丘县| 武强县| 桃园市| 长寿区| 百色市| 大冶市| 恩施市| 当阳市| 咸阳市| 青神县| 拉孜县| 牙克石市| 宁陕县| 且末县| 瑞安市| 奉化市| 桦南县| 安新县| 府谷县| 健康| 永靖县| 营山县| 石渠县| 淄博市| 疏附县| 简阳市| 民丰县| 岳西县| 柞水县| 新乐市| 文水县| 高安市|