1. 程式人生 > >(緩衝流、轉換流、序列化流)

(緩衝流、轉換流、序列化流)

1.緩衝流,也叫高效流,是對4個基本的FileXxx流的增強,所以也是4個流,按照資料型別分類:

  • 位元組緩衝流:BufferedInputStream,BufferedOutputStream

  • 字元緩衝流:BufferedReader,BufferedWriter

緩衝流的基本原理,是在建立流物件時,會建立一個內建的預設大小的緩衝區陣列,通過緩衝區讀寫,減少系統IO次數,從而提高讀寫的效率。

1.2 位元組緩衝流

構造方法

  • public BufferedInputStream(InputStream in) :建立一個 新的緩衝輸入流。

  • public BufferedOutputStream(OutputStream out) :建立一個新的緩衝輸出流。

構造舉例,程式碼如下:

// 建立位元組緩衝輸入流
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("a.txt"));
// 建立位元組緩衝輸出流
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("b.txt"));

使用緩衝流可以大大提高讀寫的效率,可以通過以下程式碼看出

public class Demo01 {
    public static void main(String[] args) throws IOException {
        long start = System.currentTimeMillis();
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream("E:\\a.png"));
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("F:\\a.png"));
        byte[] bytes = new byte[1024];
        int len ;
        while ((len = bis.read(bytes)) != -1) {
            bos.write(bytes, 0, len);

        }
        bos.close();
        bis.close();
        long end = System.currentTimeMillis();
        System.out.println("共耗時" + (end - start) + "毫秒");
    }

}