一、概念
Java中對檔案的操作是以流的方式進行的。流是Java記憶體中的一組有序資料序列。 Java將資料從來源(檔案、記憶體、鍵盤、網路)讀入到記憶體中,形成了流,然後將這些流還可以寫到另外的目的地(檔案、記憶體、控制台、網路),之所以稱為流,是因為這個資料序列在不同時刻所操作的是來源的不同部分。
二、分類
流的分類,Java的流分類比較豐富,剛接觸的人看了後會覺得很暈。流分類的方式很多:
1、依照輸入的方向分,輸入流和輸出流,輸入輸出的參考物件是Java程式。
2、依照處理資料的單位不同分,位元組流和字元流,位元組流讀取的最小單位是一個位元組(1byte=8bit),而字元流一次可以讀取一個字符(1char = 2byte = 16bit)。
3、依照功能的不同分,分節點流和處理流,節點流是直接從一個源讀寫資料的流(這個流沒有經過包裝和修飾),處理流是在對節點流封裝的基礎上的一種流,FileInputStream是一個接點流,可以直接從文件讀取數據,但是BufferedInputStream可以包裝FileInputStream,使得其有緩衝功能。
其實除了以上三種分類外,還有一些常常聽到的一些分類例如:物件流、緩衝流、壓縮流、檔案流等等。其實都是節點流和處理流的子分類。當然你也可以創造新的流類型,只要你需要。
三、流分類的關係
不管流的分類是多麼的豐富和複雜,其根源來自於四個基本的類別。這個四個類別的關係如下:
位元組流字符流
輸入流InputStream Reader
輸出流OutputStream Writer
四、位元組流和字元流的相互轉換
1、從位元組流到字元流:InputStreamReader、OutputStreamWriter類別可以實作。
2、從字元流到位元組流:可以從字元流中取得char[]數組,轉換為String,然後呼叫String的API函數getBytes() 取得到byte[],然後就可以透過ByteArrayInputStream、ByteArrayOutputStream來實現到位元組流的轉換。
眾多java訓練影片,盡在PHP中文網,歡迎線上學習!
以上是java 流是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!