PrintStream 爲其餘輸出流添加了功能,使它們可以方便地打印各類數據值表示形式
裝飾器模式中具體的裝飾類
它提供的功能就是便捷的打印各類數據形式
FilterInputStream爲裝飾器模式中的抽象角色 |
簡言之,PrintStream能夠快捷的打印輸出各類類型的數據 |
autoFlush是否自動刷新的標誌位 所謂自動刷新,就是每次調用方法後,看下標誌位,若是設置了,那麼調用一下out.flush() 好比下面這段代碼 ![]() |
因此,爲了自動刷新,能夠建立一個 PrintStream 這幾種場景下自動刷新(若是是true)app |
PrintStream 永遠不會拋出 IOException 經過代碼能夠看得出來 內部維護了一個trouble標誌位 發生了IOException異常時,捕捉後轉換爲trouble=true 能夠經過checkError()方法進行返回 |
![]() |
write(int)
write(byte[], int, int)
說到這,write基本不用介紹了,代碼上面一段也已經貼出來
增長了自動刷新的功能,而且還不會拋出異常
|
println() | 經過寫入行分隔符字符串終止當前行。行分隔符字符串由系統屬性 line.separator 定義,不必定是單個換行符 ('\n') |
print(boolean)
|
String.valueOf(boolean)生成字符串轉換爲字節 以 write(int) 方法的方式寫入這些字節 |
+println() = println(boolean) |
print(char)
|
字符轉換爲一個或多個字節
以 write(int) 方法的方式寫入這些字節
|
+println() = println(char) |
print(int)
|
String.valueOf(int)生成字符串轉換爲字節
以 write(int) 方法的方式寫入這些字節
|
+println() = println(int) |
print(long)
|
String.valueOf(long)生成字符串轉換爲字節
以 write(int) 方法的方式寫入這些字節
|
+println() = println(long) |
print(float)
|
String.valueOf(float)生成字符串轉換爲字節
以 write(int) 方法的方式寫入這些字節
|
+println() = println(float) |
print(double)
|
String.valueOf(double)生成字符串轉換爲字節
以 write(int) 方法的方式寫入這些字節
|
+println() = println(double) |
print(char[])
|
字符轉換爲字節
以 write(int) 方法的方式寫入這些字節
|
+println() = println(char[]) |
print(String)
|
若是參數爲 null,則打印字符串 "null"
不然轉換爲字節
以 write(int) 方法的方式寫入這些字節
|
+println() = println(String) |
print(Object) |
String.valueOf(Object)生成字符串轉換爲字節
以 write(int) 方法的方式寫入這些字節
|
不存在print(Object) +println()的狀況 println(Object)==先調用 String.valueOf(x) 獲取字符串值,而後再 print(String)+ println() |
print將會把數據轉換爲他們的字符串形式,而後轉換爲字節,而後在將字節寫入 |
print 與println結合 能夠變成println的形式 從代碼也能夠很直白的看出來,調用以後,而後newLine() 不過須要注意的是print(Object) 他是特例 ![]() |
append(char)
|
將指定字符添加到此輸出流。
調用此方法的 out.append(c) 形式,行爲與如下調用徹底相同:out.print(c)
最後加一個跟寫一個顯然沒什麼不一樣
|
append(CharSequence)
|
將指定字符序列添加到此輸出流 |
append(CharSequence, int, int) | 將指定字符序列的子序列添加到此輸出流 |