更新時間:2021-07-30 來源:黑馬程序員 瀏覽量:
I/O(Input/Output)流,即輸入/輸出流,是Java中實現輸入/輸出的基礎,它可以方便地實現數據的輸入/輸出操作。
I/O流有很多種,按照不同的分類方式,可以分為以下三類:
1.字節流和字符流
根據流操作的數據單位的不同,可以分為字節流和字符流。字節流以字節為單位進行數據的讀寫,每次讀寫一個或多個字節數據;字符流以字符為單位進行數據的讀寫,每次讀寫一個或者多個字符數據。
2.輸入流和輸出流
根據流傳輸方向的不同,又可分為輸入流和輸出流。其中輸入流只能從流中讀取數據,而不能向其寫入數據;輸出流只能向流中寫入數據,而不能從中讀取數據。
3.節點流和處理流
根據流的功能不同,可以分為節點流和處理流。其中節點流也被稱為低級流,是指可以從一個特定的I/O設備(如磁盤)讀寫數據的流,它只能直接連接數據源,進行數據的讀寫操作;處理流也被稱為高級流,它用于對一個已存在的節點流進行連接和封裝,通過封裝后的流來實現流的讀寫能力。當使用處理流時,程序不會直接連接到實際的數據源,而是連接在已存在的流之上。
Java中的I/O流主要定義在java.io包中,該包下定義了很多類,其中有4個類為流的頂級類,分別為InputStream和OutputStream,Reader和Writer。其中InputStream和OutPutStream是字節流,而Reader和Writer是字符流;InputStream和Reader是輸入流,而OutPutStream和Writer是輸出流。I/O流頂級類的分類如圖1所示。
圖1 I/O流的頂層類