流相當于一條管道,用來傳輸數(shù)據(jù);用形象的思維來分析流這個概念,(水管、水滴、小桶)
????? 在流中我們以當前的程序運行所在的內(nèi)存角度來劃分輸入/輸出;
按照流中傳輸?shù)臄?shù)據(jù)單元可以分為字節(jié)流、字符流;字節(jié)流可以認為水管中每一滴水就是一個字節(jié),而在字符流中每一滴水是一個字符(兩個字節(jié));
????? 如果按照流的角色分,可以分為(底層)節(jié)點流、(上層)處理流;
怎么去理解節(jié)點流,個人認為它就是一根管道直接與數(shù)據(jù)源連接,而處理流則是在已存在的流上進行封裝(即在流上再包裝其它流);當然我們也有另外一種更好的方法來區(qū)分它們:只要流的構(gòu)造參數(shù)不是一個物理節(jié)點,而是已存在的流,那么這種流一定是處理流,所有節(jié)點流都是直接以物理IO節(jié)點作為構(gòu)造參數(shù)的;
? 當然我們在實際應(yīng)用的過程中,如果輸入\輸出的內(nèi)容是文本內(nèi)容,那么我們應(yīng)該使用字符流,如果內(nèi)容是二進制內(nèi)容則要用字節(jié)流;原因是什么呢?當我們在用字節(jié)流處理文本文件時,我們而要用合適的方式轉(zhuǎn)換成字符,這就增加了編程的復(fù)雜度。當然字節(jié)流其實比字符流更加的強大,因為計算機中的所有數(shù)據(jù)都二進制的,它能夠處理所有的二進制文件
???? 字節(jié)流--------------繼承體系圖
字符流------------繼承體系圖
????? 在流中我們以當前的程序運行所在的內(nèi)存角度來劃分輸入/輸出;
按照流中傳輸?shù)臄?shù)據(jù)單元可以分為字節(jié)流、字符流;字節(jié)流可以認為水管中每一滴水就是一個字節(jié),而在字符流中每一滴水是一個字符(兩個字節(jié));
????? 如果按照流的角色分,可以分為(底層)節(jié)點流、(上層)處理流;
怎么去理解節(jié)點流,個人認為它就是一根管道直接與數(shù)據(jù)源連接,而處理流則是在已存在的流上進行封裝(即在流上再包裝其它流);當然我們也有另外一種更好的方法來區(qū)分它們:只要流的構(gòu)造參數(shù)不是一個物理節(jié)點,而是已存在的流,那么這種流一定是處理流,所有節(jié)點流都是直接以物理IO節(jié)點作為構(gòu)造參數(shù)的;
? 當然我們在實際應(yīng)用的過程中,如果輸入\輸出的內(nèi)容是文本內(nèi)容,那么我們應(yīng)該使用字符流,如果內(nèi)容是二進制內(nèi)容則要用字節(jié)流;原因是什么呢?當我們在用字節(jié)流處理文本文件時,我們而要用合適的方式轉(zhuǎn)換成字符,這就增加了編程的復(fù)雜度。當然字節(jié)流其實比字符流更加的強大,因為計算機中的所有數(shù)據(jù)都二進制的,它能夠處理所有的二進制文件
???? 字節(jié)流--------------繼承體系圖

字符流------------繼承體系圖

輸入/輸出流體系
分類? | 字節(jié)輸入流 | 字節(jié)輸出流 | 字符輸入流 | 字符輸出流 |
抽象基類 | InputStream | OutputStream | Reader | Writer |
訪問文件 | FileInputStream | File… | File Reader | File Writer |
訪問數(shù)組 | ByteArray InputStream | ByteArray… | CharArray Reader | CharArray Writer |
訪問管道 | PipedInputStream | Piped… | Piped Reader | Piped Writer |
訪問字符串 | String Reader | String Writer | ||
緩沖流 | BufferedInputStream | Buffered… | Buffered Reader | Buffered Writer |
轉(zhuǎn)換流 | InputStreamReader | OutputStreamReader | ||
對象流 | ObjectInputStream | Object… | ||
抽象基類 | FilterInputStream | Filter… | Filter Reader | FilterWriter |
打印流 | PrintStream | PrintWriter | ||
推回流 | PushbackInputStream | Pushback Reader | ||
數(shù)據(jù)流 | DataInputStream | Data… |
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
