Java Stream流的概念
為什么80%的碼農(nóng)都做不了架構(gòu)師?>>> ??
??? 1. Java的流分為 Inputstream 和 OutputStream;
??? 2. 流(stream)的概念源于UNIX中管道(pipe)的概念。在UNIX中,管道是一條不間斷的字節(jié)流,用來實現(xiàn)程序或進程間的通信,或讀寫外圍設(shè)備、外部文件等;
??? 3. Java中,流,簡單的說就是字節(jié)(byte),可以把它看作是很多很多字節(jié)(byte) 匯在一起形成的東西,起個名字就叫流,像水滴形成河流一樣,呵呵,個人形象的解釋;
??? 4. 一個流,必有源端和目的端,也即必須有數(shù)據(jù)(Data)和字節(jié)(byte)兩個部分,數(shù)據(jù)(Data):可以是計算機內(nèi)存的某些區(qū)域,也可以是磁盤文件,甚至可以是Internet上的某個URL;字節(jié)就不用說了 byte;
??? 5. 流的源端和目的端可簡單地看成是字節(jié)的生產(chǎn)者和消費者,由數(shù)據(jù)變成字節(jié),是生產(chǎn)字節(jié)、生產(chǎn)流,是Data(數(shù)據(jù))Out出流(Stream);由字節(jié)恢復(fù)成數(shù)據(jù),是讀取字節(jié)、消費流;
??? 6. 流的方向很重要,根據(jù)流的方向,流可分為兩類:輸入流和輸出流。流的方向是最難理解和最容易搞糊涂的,具體如下:
??? DataOutputStream:解釋:是對象Data: out出 字節(jié)stream, 生產(chǎn)出流, 把數(shù)據(jù)(Data)變成字節(jié)(byte), 把數(shù)據(jù)寫到內(nèi)存里,是以程序中的數(shù)據(jù)Data為參照對象,直接翻譯成英文即為其含義: "(參照物)數(shù)據(jù): 輸出流", 是生成字節(jié),所以是寫
??? *參照物*??? ——>?? Stream??? 數(shù)據(jù)轉(zhuǎn)換成生成字節(jié)(byte)????? Out源?? 端?????? ——>??? 生成流??? 生產(chǎn)字節(jié)
??? 把數(shù)據(jù) write 成字節(jié)保存到內(nèi)存中
??? DataInputStream:解釋:是對象Data(應(yīng)該是程序): in進 字節(jié)stream變成數(shù)據(jù), 消費流, 讀取字節(jié)(byte)轉(zhuǎn)換恢復(fù)成數(shù)據(jù)(Data),是以程序中的數(shù)據(jù)Data為參照對象,直接翻譯成英文即為其含義: "(參照物)數(shù)據(jù): 輸入(進)流", 是讀取字節(jié),所以是讀
??? (參照物)?? <——? Stream??? 讀取字節(jié)(byte)轉(zhuǎn)換成數(shù)據(jù)?????? In目的端???? <——? 讀取流??? 消費字節(jié)
??? 從內(nèi)存中 read 出字節(jié), 轉(zhuǎn)換成數(shù)據(jù)
【轉(zhuǎn)自】http://www.qqread.com/java/2008/08/w427980.html
圖:輸入流
圖:輸出流
?
?
對于我們常用的GBK中,英文是占用1個字節(jié),中文是2個
對于UTF-8,英文是1個,中文是3個
對于Unicode,英文中文都是2個
Java的流操作分為字節(jié)流和字符流兩種
轉(zhuǎn)載于:https://my.oschina.net/sati/blog/9535
總結(jié)
以上是生活随笔為你收集整理的Java Stream流的概念的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我在北京大学,剑桥大学读的书
- 下一篇: 走向.NET架构设计—第四章—业务层分层