1. 程式人生 > >InputStream與OutputStream的比較

InputStream與OutputStream的比較

     我們所說的流,都是針對記憶體說的,比如為什麼列印到螢幕上就是System.out.println();而從螢幕等待使用者輸入的卻是System.in呢?因為對於記憶體來說,把字串列印到螢幕上是從記憶體流向螢幕這個顯示器的,也就是輸出,而從螢幕等待使用者輸入呢?就是等待鍵盤將字元輸入到記憶體中。


根本就不用死記硬背,當你遇到IO的時候,就想兩件事,第一,我的記憶體是中心,第二看看流的方向(向量)!


好吧,那麼往硬碟上寫檔案是out還是in呢?別一看到“寫”檔案你就說in,那是望文生義,你看,寫檔案的流向,是 記憶體---------->硬碟 記憶體為中心,到硬碟,OK 用out 那麼就是FileOutputStream、BufferedOutputStream 等等
那讀檔案呢?是 記憶體<---------------硬碟 那麼就是in了 , 看清楚資料的流向就OK!


那我訪問網路,看網頁是什麼呢 網路--------------->記憶體 是in 因為我們訪問頁面是要抓取該頁面得一個html檔案,那我要是在網路上輸入帳號密碼登陸呢? 是不是記憶體的東西要寫到該伺服器上呢,所以當然是out了!


同樣socket程式設計用到更多的IO,這裡分別用Server(伺服器端)和Client(客戶端)來說明


Server: 遇到請求,網路----->記憶體 IN   伺服器應答, 記憶體------->網路 OUT
----------------------------------------------------------------------------------------------
Client: 請求服務,    記憶體----->網路 OUT 伺服器應答, 網路------->記憶體 IN