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

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

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

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