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

Reader-Writer體系

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

