2020久久超碰欧美精品最新亚洲欧美日韩久久精品,国产福利电影一区二区三区,亚洲欧美日韩一区在线观看,亚洲国产欧美日韩欧美特级,亚洲欧美日韩成人一区久久,欧美日韩精品一区二区三区不卡,国产欧美日韩va另类影音先锋,亚洲欧美日韩久久精品,亚洲欧美日韩国产成人精品影院,亚洲国产欧美日韩精品一区二区三区,欧美日韩国产成人高清视频,日韩久久精品国产免费观看频道,久久人人爽人人爽从片av高清,国产精品综合一区二区

首頁技術文章正文

字節流緩沖【Java培訓】

更新時間:2022-08-19 來源:黑馬程序員 瀏覽量:

  I/O提供兩個帶緩沖的字節流,分別是BufferedInputStream和BufferedOutputStream,它們的構造方法中分別接收InputStream和OutputStream類型的參數作為對象,在讀寫數據時提供緩沖功能。應用程序、緩沖流和底層字節流之間的關系如圖7-22所示。

1660878934779_應用程序、緩沖流和底層字節之間的關系.jpg

  圖7-22 應用程序、緩沖流和底層字節之間的關系

  從圖7-22中可以看出,應用程序是通過緩沖流來完成數據讀寫的,而緩沖流又是通過底層的字節流與設備進行關聯的。

  下面通過一個案例來學習BufferedInputStream和BufferedOutputStream這兩個流的用法。首先在Java項目的根目錄下創建一個名稱為src.txt的文件,并在該文件中隨意寫入一些內容;然后創建一個類,在類中使用FileOutputStream創建文件des.txt,并使用字節流緩沖對象將文件src.txt中的內容復制到文件des.txt中,如文件7-15所示。

  文件7-15 Example14.java

import java.io.*;
public class Example14 {
    public static void main (String[] args) throws Exception {
        // 創建一個帶緩沖區的輸入流
        BufferedInputStream bis = new BufferedInputStream (new
                       FileInputStream ("src.txt")) ;
        // 創建一個帶緩沖區的輸出流
        BufferedOutputStream bos = new BufferedOutputStream (
                  new FileOutputStream ("des.txt")) ;
        int len;
        while ((len = bis.read()) != -1) {
            bos.write (len) ;
        }
        bis.close () ;
        bos.close () ;
    }
}

  文件7-15中,第5~6行代碼分別創建了BufferedInputStream和BufferedOutputStream兩個緩沖流對象,這兩個流內部都定義了一個大小為8192的字節數組;第11~12行代碼中調用read()或者write()方法讀寫數據時,首先將讀寫的數據存入定義好的字節數組;然后將字節數組的數據一次性讀寫到文件中,這種方式與7.2.4小節中講解的字節流的緩沖區類似,都對數據進行了緩沖,從而有效地提高了數據的讀寫效率。

分享到:
在線咨詢 我要報名
和我們在線交談!