Java IO流之緩沖流(BufferedInputStream ,BufferedOutputStream)講解
回顧流的分類
1)按照數(shù)據(jù)單位的不同流可分為:字節(jié)流和字符流
2)按照數(shù)據(jù)流的流向可分為:輸入流和輸出流
3) 按流的角色的不同分為:節(jié)點(diǎn)流,處理流
抽象基類 節(jié)點(diǎn)流(字節(jié)流/字符流) 緩沖流 (處理流的一種)
InputStream FileInputStream BufferedInputStream
OutputStream FileOutputStream BufferedOutputStream
Reader FileReader BufferedReader
Writer FileWriter BufferedWriter
了提高數(shù)據(jù)讀寫的速度,Java API提供了帶緩沖功能的流類,在使用這些流類時(shí),會(huì)創(chuàng)建一個(gè)內(nèi)部緩沖區(qū)數(shù)組。
根據(jù)數(shù)據(jù)操作單位可以把緩沖流分為:
BufferedInputStream 和 BufferedOutputStream
BufferedReader 和 BufferedWriter
緩沖流的使用(處理流之一:緩沖流)
緩沖流要“套接”在相應(yīng)的節(jié)點(diǎn)流(FileInputStream ,FileOutputStream)之上也就是說(shuō)創(chuàng)建一個(gè)緩沖自己輸入流 new BufferedInputStream(FileInputStream);。同理輸出流也是這樣。對(duì)讀寫的數(shù)據(jù)提供了緩沖的功能,提高了讀寫的效率,同時(shí)增加了一些新的方法
對(duì)于輸出的緩沖流,寫出的數(shù)據(jù)會(huì)先在內(nèi)存中緩存,使用**flush()**將會(huì)使內(nèi)存中的數(shù)據(jù)立刻寫出.
具體使用步驟
1)提供讀入和寫出的文件
2)創(chuàng)建相應(yīng)的節(jié)點(diǎn)流(因?yàn)榫彌_流是建立在節(jié)點(diǎn)流之上的)
3)將創(chuàng)建的節(jié)點(diǎn)流對(duì)象作為形參傳遞給緩沖流的構(gòu)造器
4)寫具體的操作
5)關(guān)閉流 先關(guān)閉緩沖輸出流,在關(guān)閉緩沖輸入流 因?yàn)榫彌_流包含節(jié)點(diǎn)流 所以不用關(guān)閉節(jié)點(diǎn)流 直接關(guān)閉緩沖流即可。