Java IO流體系繼承結(jié)構(gòu)圖_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
Java IO體系結(jié)構(gòu)看似龐大復(fù)雜,其實(shí)有規(guī)律可循,要弄清楚其結(jié)構(gòu),需要明白兩點(diǎn):
1. 其對(duì)稱(chēng)性質(zhì):InputStream 與 OutputStream, Reader 與 Writer,他們分別是一套字節(jié)輸入-輸出,字符輸入-輸出體系
2. 原始處理器(適配器)與鏈接流處理器(裝飾器)
其結(jié)構(gòu)圖如下:

Reader-Writer體系

1. 基類(lèi)
InputStream與OutputStream是所有字節(jié)型輸入輸出流的基抽象類(lèi),同時(shí)也是適配器(原始流處理器)需要適配的對(duì)象,也是裝飾器(鏈接流處理器)裝飾對(duì)象的基類(lèi).
2. 原始流處理器
原始流處理器接收Byte數(shù)組對(duì)象,String對(duì)象,FileDescriptor對(duì)象將其適配成InputStream,以供其他裝飾器使用,他們都繼承自InputStream 包括如下幾個(gè):
ByteArrayInputStream: 接收Byte數(shù)組為流源,為多線(xiàn)程通信提供緩沖區(qū)操作功能
FileInputStream: 接收一個(gè)File作為流源,用于文件的讀取
PipedInputStream: 接收一個(gè)PipedOutputStream,與PipedOutputStream配合作為管道使用
StringBufferInputStream: 接收一個(gè)String作為流的源(已棄用)
3. 鏈接流處理器
鏈接流處理器可以接收另一個(gè)流處理器(InputStream,包括鏈接流處理器和原始流處理器)作為源,并對(duì)其功能進(jìn)行擴(kuò)展,所以說(shuō)他們是裝飾器.
1) FilterInputStream繼承自InputStream,是所有裝飾器的父類(lèi),FilterInputStream內(nèi)部也包含一個(gè)InputStream,這個(gè)InputStream就是被裝飾類(lèi)--一個(gè)原始流處理器,它包括如下幾個(gè)子類(lèi):
BufferedInputStream: 用來(lái)將數(shù)據(jù)讀入內(nèi)存緩沖區(qū),并從此緩沖區(qū)提供數(shù)據(jù)
DataInputStream: 提供基于多字節(jié)的讀取方法,可以讀取原始數(shù)據(jù)類(lèi)型(Byte, Int, Long, Double等等)
LineNumberInputStream: 提供具有行計(jì)數(shù)功能的流處理器
PushbackInputStream: 提供已讀取字節(jié)"推回"輸入流的功能
2) ObjectInputStream: 可以將使用ObjectOutputStream寫(xiě)入的基本數(shù)據(jù)和對(duì)象進(jìn)行反串行化
3) SequenceInputStream: 可以合并多個(gè)InputStream原始流,依次讀取這些合并的原始流
對(duì)于OutputStream, Reader, Writer的體系結(jié)構(gòu)也跟InputStream的結(jié)構(gòu)類(lèi)似
以上所述是小編給大家介紹的Java IO流體系繼承結(jié)構(gòu)圖_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
spring-boot-starter-security的簡(jiǎn)單使用方式
文章介紹了三種使用Spring Boot Security的方法:基于配置文件、基于配置類(lèi)和基于注解的方式,通過(guò)這些方法,可以實(shí)現(xiàn)對(duì)Web應(yīng)用的權(quán)限控制,確保只有授權(quán)用戶(hù)才能訪問(wèn)特定資源2024-11-11
SpringBoot+SpringSecurity實(shí)現(xiàn)認(rèn)證的流程詳解
這篇文章主要介紹了SpringBoot+SpringSecurity實(shí)現(xiàn)認(rèn)證的流程,文中通過(guò)代碼示例和圖文結(jié)合的方式講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-05-05
Java冒泡排序(Bubble Sort)實(shí)例講解
冒泡排序的原理:假設(shè)要求的數(shù)組是正序,兩兩進(jìn)行比較,如果前一個(gè)書(shū)比后一個(gè)數(shù)小,位置不變。如果前一個(gè)數(shù)比后一個(gè)數(shù)大,位置互換,再跟后一個(gè)數(shù)進(jìn)行比較,直到最后。就是逐步把大數(shù)送到最后,下面來(lái)個(gè)實(shí)例給大家看看2013-11-11
elasticsearch節(jié)點(diǎn)間通信的基礎(chǔ)transport啟動(dòng)過(guò)程
這篇文章主要為大家介紹了elasticsearch節(jié)點(diǎn)間通信的基礎(chǔ)transport啟動(dòng)過(guò)程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04
Spring中的底層架構(gòu)核心概念類(lèi)型轉(zhuǎn)換器詳解
這篇文章主要介紹了Spring中的底層架構(gòu)核心概念類(lèi)型轉(zhuǎn)換器詳解,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-12-12
Java實(shí)現(xiàn)微信網(wǎng)頁(yè)授權(quán)的示例代碼
這篇文章主要介紹了Java實(shí)現(xiàn)微信網(wǎng)頁(yè)授權(quán)的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-07-07

