I/O流分類
按數據流向分爲:輸入流、輸出流
按處理數據單位分爲:字節流、字符流
按功能分爲:節點流、 處理流
四種基本抽象流類型
字符流和字節流
字符流和字節流的主要區別:
1.字節流讀取的時候,讀到一個字節就返回一個字節; 字符流使用了字節流讀到一個或多個字節(中文對應的字節數是兩個,在UTF-8碼錶中是3個字節)時。先去查指定的編碼表,將查到的字符返回。
2.字節流可以處理所有類型數據,如:圖片,MP3,AVI視頻文件,而字符流只能處理字符數據。只要是處理純文本數據,就要優先考慮使用字符流,中文一定要用字符流,除此之外都用字節流。
節點流和處理流
處理流
緩衝流
BufferedInputStream
BufferedOutputStream
BufferedReader 提供了readline方法,一次讀取一行
BufferedWriter
轉換流
用於字節數據到字符數據的轉換,該流對象中可以對讀取到的字節數據進行指定編碼的編碼轉換。
InputStreamReader
OutputStreamWriter
數據流
該數據流可以方便地對一些基本類型數據進行直接的存儲和讀取,不需要再進一步進行轉換,通常只要操作基本數據類型的數據,就需要通過DataStream進行包裝。
DataInputStream
DataOutputStream
打印流
PrintStream
PrintWriter
對象流
該類型的流可以把類作爲一個整體進行存取,被寫入的對象必須實現一個接口:Serializable
ObjectInputStream
ObjectOutputStream