您當前的位置:首頁 > 收藏

位元組處理流(緩衝流)

作者:由 小菜雞kiki 發表于 收藏時間:2020-04-01

package cn。jd。io;

import java。io。BufferedInputStream;

import java。io。File;

import java。io。FileInputStream;

import java。io。FileNotFoundException;

import java。io。IOException;

import java。io。InputStream;

public class BufferedTest01 {

public static void main(String[] args) {

//1。建立源

File alt="位元組處理流(緩衝流)" data-isLoading="0" src="/static/img/blank.gif" data-src=new File(“1。txt”);

//選擇流

InputStream is=null;

BufferedInputStream bis=null; //位元組流加上處理流只加了兩行程式碼

try {

is=new FileInputStream(src);

bis=new BufferedInputStream(is);

byte[] flush=new byte[1024];

int len=-1;

while((len=is。read(flush))!=-1) {

String str=new String(flush,0,len);

System。out。println(str);

}

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e。printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e。printStackTrace();

}finally {

try {

if(is!=null) {

bis。close(); //這裡寫成bis釋放,它會通知is釋放的,本質其實還是is的釋放,因為檔案時儲存在硬碟上的

}

} catch (IOException e) {

// TODO Auto-generated catch block

e。printStackTrace();

}

}

}

}

裝飾流也就是我們所說的處理流

在IO中位元組處理流就相當於是一個提高效能的裝飾品。

位元組處理流(緩衝流)

這裡的是位元組緩衝流,是對位元組流的緩衝,緩衝流的作用就是提高了我們操作(讀寫)的效能,因為IO的操作是影響程式效能的一個瓶頸,所以它內部設定了一個緩衝區(用來提高我們讀寫的操作,不用我們頻繁的讀寫硬碟(將資料一次性打包到這個緩衝區域))

這個緩衝流只需要套在我們的位元組流上

節點流始終在第一線,處理流是給節點流做了包裝,提高了效能。

釋放的順序是從裡到外釋放,但是我們其實只要釋放最外層的BufferInputStream就可以了,它會通知記憶體釋放的(這是我舉的一個例子)

位元組處理流(緩衝流)

位元組處理流(緩衝流)

位元組處理流(緩衝流)

這個緩衝區的大小預設是8k的

位元組處理流(緩衝流)

位元組處理流(緩衝流)

位元組處理流(緩衝流)

https://www。zhihu。com/video/1228775099224522752

標簽: io  import  Java  catch  NEW