內置了一個緩衝區(數組)緩衝流BufferInputStream為何要配合位元組數組的使用?
- 2021 年 3 月 13 日
- 筆記
- 內置了一個緩衝區(數組)緩衝流BufferInputStream為何要配合位元組數組的使用?
內置了一個緩衝區(數組)緩衝流BufferInputStream為何要配合位元組數組的使用?
只為效率而積累【積少成多送一趟比送多趟快】
舉例子:超市買30個雞蛋回家煮
(1)讀一個送一個(效率太低啦)
☆inputStream.read(); //就像去一趟超市買了一個雞蛋就回家,按照這劇情,買30個雞蛋,需要跑超市-家(30趟) oh,my god!
☆bufferedInputStream.read(); //就像買一個雞蛋暫時放到離超市很近的老王家,按照這劇情,可以超市-老王家(老王只允許給放8個雞蛋)8個雞蛋,然後8個雞蛋再拿回家,然後超市-老王家又8個雞蛋,然後再回一次家。。。。。30個雞蛋,就變成去30次離超市很近的老王家,回四次家啦(路程已經縮減,但是就是那啥,去老王家次數太多了。。。。。)
(2)一次性讀取多個位元組(配合位元組數組的使用)
定義一個位元組數組 byte[ ] buff = new byte[5];
☆inputStream.read(buff); //就像去一趟超市買了五個雞蛋就回家,按照這劇情,買30個雞蛋,需要跑超市-家(6趟)不錯,效率提升了。
☆bufferedInputStream.read(buff); //就像買五個雞蛋暫時放到離超市很近的老王家,按照這劇情,可以超市-老王家(老王只允許給放8個雞蛋)8個雞蛋,然後8個雞蛋再拿回家,然後超市-老王家又8個雞蛋,然後再回一次家。。。。。30個雞蛋,就變成去6次離超市很近的老王家,回四次家啦(效率比inputStream更高,因為老王家離超市真的很近)