1. 程式人生 > >happy in java之io流簡介

happy in java之io流簡介

ack 封裝 16px bsp strong 一個 硬盤 其他 file

閑來沒事,重溫馬士兵老師的java基礎。。。

流 水流的流 流氓的流,,流 英文叫做stream,溪流

流的分類:

技術分享

流是用來讀寫數據的。

技術分享

流就像水流一樣,File類封裝的是文件的名字,它是內存裏頭的一個對象,OK,但是真正的文件是在硬盤上的一塊空間,在這文件裏頭,存著各種各樣的數據,那麽我們想讀這數據怎麽辦呢?是這樣來讀,是通過一個流的方式來讀。

如下圖,比方說這是我們文件,咱們要想從程序讀數據,大家都知道,對於計算機來說,你讀任何的數據都是什麽樣的形式,是不是都是010101 這些形式,對吧 。

技術分享

怎麽樣吧這些文件裏邊的內容個讀出來,你就把這個文件想象成一個小桶。文件就是個桶,你怎麽從桶裏邊取水呢?或者說怎麽從文件裏邊取數據呢,常見的取法是這樣的,我們弄一根管道懟到桶上,然後把這根管道,哐唧

一懟懟到桶上邊,這邊打開水龍頭,就開始出水,這就叫流,什麽叫流,這根管道就叫流水流嘩啦嘩啦嘩啦流出來了,這就叫流,java裏頭的輸入輸出,跟這個水流一模一樣,當你要從文件取數據的時候,一根管道咣唧懟上去,然後就順著這根管道,你開始往外讀數據。

技術分享

你要往裏頭寫數據呢?反過來,咣唧一根管道懟上去,從管道這一頭開始咵唧咵唧往裏頭灌水。

技術分享

除了你可以從文件讀寫數據呢,你還可以從網絡,比如這根管道咵唧從我機器上懟到你機器上了,我說一句話,你那邊就收著了。你說一句話我這邊就收著了。OK?

技術分享

有的時候一根管道不夠使,比方說這根管道讀過來的水,裏有雜質,外邊再包一層管道, 比方說你讀過來的數據,最原始的數據肯定是010101,一個字節一個字節的往外讀,當你這樣讀的時候你覺得這樣的方法不合適,沒關系。外邊再包一層強大一點的管道,這個管道可以吧010101轉換成字符串,哐當讀出來,這個管道就包在了原始管道的外邊, 這就是流式的輸入輸出,這些管道就是java的流。

技術分享

流的分類:

根據不同的角度分成不同的類型,io包裏頭定義了所有的流。

輸入流or輸出流的劃分:都是站在程序打的角度來說的,相對於程序來說的。

字節流or字符流:

字節流:最原始的一個流, 讀出來的數據就是010101,只不過是按照字節來讀的,一個字節是8位。

字符流:一個字符一個字符往外讀,字符是2個字節。Java裏邊是Unicode字符串一個字符是2個字節。 Utf16 ok

節點流or處理流:

節點流:這根管道直接懟到數據源上的流。

處理流:套在其他管道之上的流。

凡是以Stream結尾的都是字節流,最原始的讀取數據的方式,一個字節一個字節的讀。

技術分享

技術分享

happy in java之io流簡介