Java中的I/O流分為兩類:位元組流和字元流。位元組流主要用於讀寫二進位制資料,而字元流則主要用於讀寫文字資料。在位元組流和字元流中,又分為處理流和節點流。
節點流是直接連線到資料來源或資料目的地的流,也就是說它們是直接操作檔案的流,例如FileInputStream和FileOutputStream。節點流可以直接讀寫檔案,但是不能對資料進行處理。
處理流是對節點流的包裝,它們可以對資料進行處理,例如緩衝、壓縮、加密等。處理流必須依附於一個節點流,它們透過對資料的處理來增強節點流的功能。例如BufferedInputStream和BufferedOutputStream就是處理流,它們可以提高節點流的讀寫效率。
處理流和節點流可以組合使用,例如使用FileInputStream讀取檔案時,可以使用BufferedInputStream進行緩衝,提高讀取效率。而使用BufferedOutputStream寫入檔案時,則可以使用FileOutputStream作為節點流。