天天看點

java位元組流和字元流的子類_java位元組流和字元流

可以使用流 通路檔案系統上的檔案。在最低的級别上,流允許程式接收來自資料源的位元組,或者允許将輸出發送到目的地。一些流可以處理所有類型的 16 位字元(類型 Reader 和 Writer)。而其他一些流則隻能處理 8 位字元(類型 InputStream 和 OutputStream)。在這些分層結構中,有幾種風格的流(所有流都可以在 java.io 包中找到)。在最進階别的抽象中,有一些字元流 和位元組流。

位元組流讀取(InputStream 及其子類)并編寫(OutputStream 及其子類)8 位位元組。換句話說,可以将位元組流看作是一種更原始的流。是以,也就不難了解為什麼關于基本 Java 語言類的 Java.sun.com 教程說位元組流通常用于二進制資料,比如說圖像。以下是一個標明的位元組流清單:

FileInputStream 從某一檔案中讀取檔案

FileOutputStream 将位元組寫入某個檔案中。

ByteArrayInputStream

ByteArrayOutputStream

從某個記憶體數組中讀取位元組,以及将位元組寫入某個記憶體數組中。

字元流可以讀取(Reader 及其子類)和寫入(Writer 及其子類)16 位的字元。子類也可以從資料接收器 中讀取或寫入資料,或者處理轉換中的位元組。以下是一個標明的字元流清單:

StringReader

StringWriter

這些流從記憶體中的 String 中讀取或寫入字元。

InputStreamReader

InputStreamWriter(及其子類 FileReader

FileWriter)

是位元組流與字元流之間的橋梁。Reader 風格(flavor)從位元組流讀取位元組,并将它們轉換成字元。而 Writer 風格将字元轉換成位元組,并将它們放在位元組流上。

BufferedReader 和 BufferedWriter

在緩沖資料的同時讀取或寫入另個流,它使讀取或寫入操作更加有效。可以用緩沖的流包裝 另一個流。

存在着幾種讀取和寫入 File 的方法,但是通常,最簡便的方法如下所示:

在 File 上建立一個 FileWriter。

将 FileWriter 包裝到一個 BufferedWriter 中。

隻要有必要,可以在 BufferedWriter 上調用 write() 來編寫 File 的内容,通常每個行都是以一個行終止符(即 \n)結尾的。

在 BufferedWriter 上調用 flush() 來清空它。

關閉 BufferedWriter,如果有必要,還需要清除它