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

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

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

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