java流的概念
剛開始接觸流的概念,很迷惑,搞了很久終于搞懂,時隔許久,又迷惑了,現做一小結,拿來與大家分享,亦作為我Blog的首篇。
1. Java的流分為 Inputstream 和 OutputStream;
2. 流(stream)的概念源于UNIX中管道(pipe)的概念。在UNIX中,管道是一條不間斷的字節流,用來實現程序或進程間的通信,或讀寫外圍設備、外部文件等;
3. Java中,流,簡單的說就是字節(byte),可以把它看作是很多很多字節(byte) 匯在一起形成的東西,起個名字就叫流,像水滴形成河流一樣,呵呵,個人的解釋;
4. 一個流,必有源端和目的端,也即必須有數據(Data)和字節(byte)兩個部分,數據(Data):可以是計算機內存的某些區域,也可以是磁盤文件,甚至可以是Internet上的某個URL;字節就不用說了 byte;
5. 流的源端和目的端可簡單地看成是字節的生產者和消費者,由數據變成字節,是生產字節、生產流;由字節恢復成數據,是讀取字節、消費流;
6. 流的方向很重要,根據流的方向,流可分為兩類:輸入流和輸出流。流的方向是最難理解和最容易搞糊涂的,具體如下:
DataOutputStream:
解釋:
是對象Data(數據): out出 字節stream, 生產出流, 把數據(Data)變成字節(byte), 把數據寫到內存里,
是以程序中的數據Data為參照對象,直接翻譯成英文即為其含義: "(參照物)數據: 輸出流", 是生成字節,所以是寫
*參照物* --> Stream 數據轉換成生成字節(byte) Out
源 端 --> 生成流 生產字節
把數據 write 成字節保存到內存中
|
DataInputStream:
解釋:
是對象Data(應該是程序): in進 字節stream,變成數據, 消費流, 讀取字節(byte)轉換恢復成數據(Data),
是以程序中的數據Data為參照對象,直接翻譯成英文即為其含義: "(參照物)數據: 輸入(進)流", 是讀取字節,所以是讀
(參照物) <-- Stream 讀取字節(byte)轉換成數據 In
目的端 <-- 讀取流 消費字節
從內存中 read 出字節, 轉換成數據
|
程序代碼待續: