輸出流
java的基本輸出類是java.io.OutputStream; OutputStream的子類使用它提供的方法向某種特定的介質(zhì)寫入數(shù)據(jù)。
在于網(wǎng)絡(luò)硬件中緩存一樣,流還可以再軟件中得到緩沖,我們可以通過BufferedOutputStream或BufferedWriter串鏈到底層流上來實現(xiàn)。一般情況下如果緩沖區(qū)的流沒有填充滿,這個流將不會執(zhí)行發(fā)送,我們可以通過flush()來強制緩沖流發(fā)送。
輸入流
java的基本輸入類是java.io.InputStream; InputStream的子類使用它提供的方法從某種特定的介質(zhì)讀取數(shù)據(jù)。
標記和重置:為了重新讀取數(shù)據(jù),可以使用mark()方法標記當(dāng)前位置。在以后的某個時刻可以用reset()方法把流重置到之前標記的位置。并不是所有的輸入流類都可以支持該方法,可以使用markSupported()來做判斷。目前java.io中僅有兩個支持標記輸入流類:BufferedInputStream和ByteArrayInputStream,而其它流需要先串鏈到緩沖的輸入流才可以使用該標記。
過濾器流
使用字節(jié)來傳送數(shù)據(jù)是相當(dāng)緩慢和復(fù)雜的,效率也會很低,所有java提供很多過濾器類來包裝基本的流,可以讓該流的原始字節(jié)和各種格式之間來回轉(zhuǎn)換。
閱讀器和書寫器
Writer類是java.io.OutputStream類的映射。它的子類可以實現(xiàn)對字符的寫入。
Reader類是java.io.InputStream類的鏡像。它的子類可以實現(xiàn)對字符的讀取和一些編碼工作。