功能簡介
PrintStream 為其他輸出流添加了功能,使它們能夠方便地打印各種數據值表示形式
裝飾器模式中具體的裝飾類
它提供的功能就是便捷的打印各種數據形式
FilterInputStream為裝飾器模式中的抽象角色 |
簡言之,PrintStream可以快捷的打印輸出各種類型的數據 |
關鍵字段
autoFlush是否自動刷新的標志位 所謂自動刷新,就是每次調用方法后,看下標志位,如果設置了,那么調用一下out.flush() 比如下面這段代碼 ![]() |
所以,為了自動刷新,可以創建一個 PrintStream 這幾種場景下自動刷新(如果是true) |
構造方法
PrintStream 永遠不會拋出 IOException 通過代碼可以看得出來 內部維護了一個trouble標志位 發生了IOException異常時,捕捉后轉換為trouble=true 可以通過checkError()方法進行返回 |
![]() |
主要方法介紹
write方法
write(int)
write(byte[], int, int)
說到這,write基本不用介紹了,代碼上面一段也已經貼出來
增加了自動刷新的功能,並且還不會拋出異常
|
print系列
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) | 將指定字符序列的子序列添加到此輸出流 |
flush()
close()