PrintStream的用意是要以一種大家都能看懂的方式把primitive數據和String對象列印出來。這一點同DataOutputStream不同,後者是要將數據裝入一個流,然後再交給 DataInputStream處理。
PrintStream的兩個最重要的方法是print( )和println( )。這兩個方法都已經作了重載,因此可以列印各種數據。print( )和println( )的區別在於,後者會多列印一個換行符。
使用PrintStream的時候會比較麻煩,因為它會捕捉所有的IOException(所以你必須直接調用checkError( )來檢查錯誤條件,因為這個方法會在碰到問題的時候返回true)。再加上,PrintStream的國際化做得也不好,而且還不能以與平台無關的方式處理換行(這些問題都已經在printwriter里得到解決,我們接下來再講)。
BufferedOutputStream 是個decorator,它表示對流作緩衝,這樣每次往流里寫東西的時候它就不會再每次都作物理操作了。輸出的時候大致都要這么做。
類 | 功能 | 構造函式的參數 |
用法 | ||
DataOutputStream | 與DataInputStream配合使用,這樣你就可以用一種"可攜帶的方式(portable fashion)"往流里寫primitive了(int, char, long,等) | OutputStream |
包括寫入primitive數據的全套接口。 | ||
PrintStream | 負責生成帶格式的輸出(formatted output)。DataOutputStrem負責數據的存儲,而PrintStream負責數據的顯示。 | 一個OutputStream以及一個可選的boolean值。這個boolean值表示,要不要清空換行符後面的緩衝區。 |
應該是OutputStream對象的最終包覆層。用的機會很多。 | ||
BufferedOutputStream | 用 這個類解決"每次往流里寫數據,都要進行物理操作"的問題。也就是說"用緩衝區"。用flush( )清空緩衝區。 | OutputStream, 以及一個可選的緩衝區大小 |
本身並不提供接口,只是加了一個緩衝區。需要連結一個有接口的對象。 |