更新時(shí)間:2021-12-02 16:11:23 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1560次
Java I/O需要處理多種場(chǎng)景,Java類庫(kù)的設(shè)計(jì)者都是通過(guò)創(chuàng)建大量的類來(lái)解決這個(gè)問(wèn)題的,單篇文章難以詳述,本文只是試圖提供一個(gè)通用的概述傳統(tǒng)I/O類庫(kù)所涉及的類,以掌握整個(gè)上下文,更好地理解和應(yīng)用I./O類庫(kù)解決實(shí)際編程問(wèn)題。具體需要參考JDK文檔。
在Java 1.0中,類庫(kù)的設(shè)計(jì)者首先限制所有與輸入相關(guān)的類都繼承自InputStream,而與輸出相關(guān)的所有類都繼承自O(shè)utputStream。
InputStream用于表示從不同數(shù)據(jù)源生成輸入的類。這些數(shù)據(jù)來(lái)源包括:
每個(gè)數(shù)據(jù)源都有其對(duì)應(yīng)的InputStream子類作為基本組件:
除了上述基本組件外,還有兩個(gè)子類:FilterInputStream/FilterOutputStream,它們也是InputStream和OutputStream的子類。它們?yōu)?ldquo;decorator”類提供基類,其中“decorator”類可以將屬性或有用的接口連接到基本組件。因?yàn)樯厦嫣岬降腎nputStream/OutputStream是單字節(jié)操作的,而真正的I/O場(chǎng)景遠(yuǎn)不止于此,它通過(guò)“裝飾”來(lái)擴(kuò)展其功能(原理是類的組合)。
我自己梳理了InputStream/OutputStream流繼承層次結(jié)構(gòu),結(jié)合下面的講解,可以對(duì)字節(jié)流系統(tǒng)有更清晰的認(rèn)識(shí):
FilterInputStream類有以下子類,即具體的裝飾器:
它的裝飾功能主要有兩個(gè)方面:
與Filter Input Stream類似,F(xiàn)ilter Output Stream主要完成寫(xiě)入功能,主要包括以下裝飾器:
以上就是動(dòng)力節(jié)點(diǎn)小編介紹的"深入學(xué)習(xí)Java I/O的輸入輸出,看了就會(huì)",希望對(duì)大家有幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為您服務(wù)。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)