[java IO流]之 IO概述

小杆子發表於2021-02-10
概述:

在程式中所有的資料都是以流的方式進行傳輸和儲存的,程式通過輸入流讀取資料;當程式需要將一些資料長期儲存起來的時候使用輸出流完成。

IO流的本質:

本地裝置與不同裝置之間資料的傳輸,例如:本地檔案拷貝,上傳檔案和下載檔案等等。

注意:

1.但凡是對資料的操作,Java都是通過流的方式來操作的

2.程式中的輸入輸出都是以流的形式儲存的,流中儲存的實際上全都是位元組檔案。

3.IO流可以做到資料的持久化,但是IO流本質上是用來處理檔案系統以及不同裝置之間的資料傳輸。

IO流的分類:

有兩種不同的分類方式:

按照資料傳輸的方向分類:

1.輸入流:從外界(鍵盤、網路、檔案…)讀取資料到記憶體

2.輸出流:用於將程式中的資料寫出到外界(顯示器、檔案…)

按照傳輸的資料型別分類:

1.位元組流:一般針對二進位制檔案【視訊,音訊,圖片】

2.字元流:一般針對文字檔案【xml、json、html、txt、md….】

**流的操作的三要素:

1.資料來源:資料從哪裡來。(記憶體可以當做目的地,也可以當做中轉站)

2.目的地:資料到哪裡去。(記憶體可以當做目的地,也可以當做中轉站)

3.交通工具:

a.選對流的型別,是需要輸入流還是需要輸出流,還是兩個都需要

b.根據確定的流向在IO流框架中選取自己認為最適合的流

位元組流和字元流的區別:

1.讀寫單位不同:位元組流以位元組(8Bit)為單位,字元流以字元為單位,根據碼錶對映字元,一次可能讀多個位元組。

2.處理物件不同:位元組流能處理所有型別的資料(如圖片、avi等),而字元流只能處理字元型別的資料。例如:本文檔案,json,html,css,js,xml

注意:只要是處理純文字資料,就優先考慮使用字元流,除此之外都使用位元組流

IO流繼承體系結構圖:

【java IO流】之 IO概述

本作品採用《CC 協議》,轉載必須註明作者和本文連結