Java —— 流的抽象基類

Alex_McAvoy發表於2018-10-28

【位元組流】

InputStream 類與 OutputStream 類是位元組流的抽象類,它們定義了位元組流讀取和寫入的基本方法,各個子類會依其特點實現或覆蓋其方法。

1.InputStream 類

InputStream 類是所有位元組輸入流的父類,它定義了操作輸入流的方法,常見方法如下:

available() 返回當前輸入流的資料讀取方法可以讀取的有效位元組數量
read(byte[] bytes) 從輸入資料流中讀取位元組並存入 bytes 陣列中
read(byte[] bytes,int off,int len) 從輸入資料流讀取 len 個位元組,並存入 bytes 陣列下標 off 開始的位置
mark(int readlimit) 在輸入資料流中加入標記
markSupported() 測試輸入流中是否支援標記
reset() 將當前輸入流重新定位到最後一次呼叫 mark() 方法的位置
close() 關閉當前輸入流,並釋放任何與之關聯的系統資源
read() 為讓繼承該類的子類可以針對不同的外部裝置可以實現,因此被定義為抽象方法,從當前資料流中讀取一個位元組,若已到達流結尾,則返回 -1

2.OutputStream 類

OutputStream 類是所有位元組輸出流的父類,它定義了操作輸出流的方法,常見方法如下:

write(byte[] bytes) 將 bytes 中的資料寫入當前輸出流
write(byte[] bytes,int off,int len) 將 bytes 下標 off 開始的 len 長度的資料寫入當前輸出流
flush() 重新整理當前輸出流,並強制寫入所有緩衝的位元組資料
close() 關閉當前輸出流,並釋放任何與之關聯的系統資源
write() 為讓繼承該類的子類可以針對不同的外部裝置可以實現,因此被定義為抽象方法,寫入一個 byte 資料到當前輸出流

【字元流】

Reader 類與 Writer 類是字元流的抽象類,它們定義了字元流讀取和寫入的基本方法,各個子類會依其特點實現或覆蓋其方法。

1.Reader 類

Reader 類是所有字元輸入類的父類,它定義了操作字元輸入流的方法,常用方法如下:

read() 讀入一個字元,若已讀到流結尾,則返回 -1
read(char[] cbuf) 讀入一些字元到 cbuf 陣列內,並返回讀入字元的數量,若已到達流結尾,則返回-1
mark(int readlimit) 在輸入資料流中加入標記
reset() 將當前輸入流重新定位到最後一次呼叫 mark() 方法的位置
skip(long n) 跳過引數 n 指定的字元數量,並返回所跳過字元的數量
getEncoding() 返回此流使用的編碼名稱
ready() 報告此流是否準備已讀
close() 關閉當前輸入流,並釋放任何與之關聯的系統資源

2.Writer 類

Writer 類是所有字元輸出類的父類,它定義了操作字元輸出流的方法,常用方法如下:

write(char c) 將字元 c 寫入當前輸出流
write(String str) 將字串 str 寫入當前輸出流
write(char[] cbuf) 將字元陣列 cbuf 寫入當前輸出流
flush() 重新整理當前輸出流,並強制寫入所有緩衝的位元組資料
close() 關閉當前輸出流,並釋放任何與之關聯的系統資源

相關文章