包裝 InputOutput 流
OutputStream
和 InputStream
有許多不同的類,每個類都具有獨特的功能。通過將流包裹在另一個流中,你可以獲得兩個流的功能。
你可以多次包裝流,只需記下訂購。
有用的組合
使用緩衝區時將字元寫入檔案
File myFile = new File("targetFile.txt");
PrintWriter writer = new PrintWriter(new BufferedOutputStream(new FileOutputStream(myFile)));
在使用緩衝區寫入檔案之前壓縮和加密資料
Cipher cipher = ... // Initialize cipher
File myFile = new File("targetFile.enc");
BufferedOutputStream outputStream = new BufferedOutputStream(new DeflaterOutputStream(new CipherOutputStream(new FileOutputStream(myFile), cipher)));
輸入/輸出流包裝器列表
包裝紙 | 描述 |
---|---|
BufferedOutputStream / BufferedInputStream |
雖然 OutputStream 一次寫入一個位元組的資料,但 BufferedOutputStream 以資料塊的形式寫入資料。這減少了系統呼叫的數量,從而提高了效能。 |
DeflaterOutputStream / DeflaterInputStream |
執行資料壓縮。 |
InflaterOutputStream / InflaterInputStream |
執行資料解壓縮。 |
CipherOutputStream / CipherInputStream |
加密/解密資料。 |
DigestOutputStream / DigestInputStream |
生成訊息摘要以驗證資料完整性。 |
CheckedOutputStream / CheckedInputStream |
生成 CheckSum。CheckSum 是 Message Digest 的一個更簡單的版本。 |
DataOutputStream / DataInputStream |
允許寫入原始資料型別和字串。意思是寫位元組。平臺獨立。 |
PrintStream |
允許寫入原始資料型別和字串。意思是寫位元組。平臺依賴。 |
OutputStreamWriter |
將 OutputStream 轉換為 Writer。OutputStream 處理位元組,而 Writers 處理字元 |
PrintWriter |
自動呼叫 OutputStreamWriter。允許寫入原始資料型別和字串。嚴格來說,寫字元和寫字元最好 |