IO流解讀

我們都知道IO流是用的裝飾器模式, 他的抽象的每個IO類都是繼承自基類, 其實若開發人員對於io流不熟悉的話, 用起來會有一種在墳墓裏迷路的感覺

1、InputStream

     此類是對最基本電腦內存與硬盤之間讀取操作的抽象,此類你獲取到後,他是不能夠重複讀取的,就是說你read了一遍之後,不管這個流你有沒有關,都不能讀取第二遍,當然我們可以手寫邏輯把inputStream重新讀取成ByteArrayOutputStream與ByteArrayInputStream,ByteArrayInputStream的mark與reset可以是你回到流的標記點重複讀取;當然通常你的流是用get方法獲取的,比如說classPathResource.getInputStream(),你每get一次可能是獲取一個新的輸入流備份,這樣的話重複get也可以重複讀了

2、File

     現在你來比較一下File和inputStream的區別,File你不用做任何處理,File對象本來就可以重複打開讀取,但是流不是

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章