JavaTM 2 Platform
Standard Ed. 6

java.io
類別 PrintWriter

java.lang.Object
  繼承者 java.io.Writer
      繼承者 java.io.PrintWriter
所有已實作的介面:
Closeable, Flushable, Appendable

public class PrintWriter
extends Writer

向文本輸出串流列印物件的格式化表示形式。此類別實作在 PrintStream 中的所有 print 方法。它不包含用於寫入原始位元組的方法,對於這些位元組,程序應該使用未編碼的位元組串流進行寫入。

PrintStream 類別不同,如果啟用了自動刷新,則只有在調用 printlnprintfformat 的其中一個方法時才可能完成此操作,而不是每當正好輸出換行符時才完成。這些方法使用平臺自有的行分隔符概念,而不是換行符。

此類別中的方法不會拋出 I/O 異常,儘管其某些建構子可能拋出異常。客戶端可能會查詢調用 checkError() 是否出現錯誤。

從以下版本開始:
JDK1.1

欄位摘要
protected  Writer out
          此 PrintWriter 的底層字元輸出串流。
 
從類別 java.io.Writer 繼承的欄位
lock
 
建構子摘要
PrintWriter(File file)
          使用指定檔案創建不具有自動行刷新的新 PrintWriter。
PrintWriter(File file, String csn)
          創建具有指定檔案和字元集且不帶自動刷行新的新 PrintWriter。
PrintWriter(OutputStream out)
          根據現有的 OutputStream 創建不帶自動行刷新的新 PrintWriter。
PrintWriter(OutputStream out, boolean autoFlush)
          通過現有的 OutputStream 創建新的 PrintWriter。
PrintWriter(String fileName)
          創建具有指定檔案名稱且不帶自動行刷新的新 PrintWriter。
PrintWriter(String fileName, String csn)
          創建具有指定檔案名稱和字元集且不帶自動行刷新的新 PrintWriter。
PrintWriter(Writer out)
          創建不帶自動行刷新的新 PrintWriter。
PrintWriter(Writer out, boolean autoFlush)
          創建新 PrintWriter。
 
方法摘要
 PrintWriter append(char c)
          將指定字元添加到此 writer。
 PrintWriter append(CharSequence csq)
          將指定的字元序列添加到此 writer。
 PrintWriter append(CharSequence csq, int start, int end)
          將指定字元序列的子序列添加到此 writer。
 boolean checkError()
          如果串流沒有關閉,則刷新串流且檢查其錯誤狀態。
protected  void clearError()
          清除此串流的錯誤狀態。
 void close()
          關閉該串流並釋放與之關聯的所有系統資源。
 void flush()
          刷新該串流的緩衝。
 PrintWriter format(Locale l, String format, Object... args)
          使用指定格式字元串和參數將一個格式化字元串寫入此 writer 中。
 PrintWriter format(String format, Object... args)
          使用指定格式字元串和參數將一個格式化字元串寫入此 writer 中。
 void print(boolean b)
          列印 boolean 值。
 void print(char c)
          列印字元。
 void print(char[] s)
          列印字元陣列。
 void print(double d)
          列印 double 精度浮點數。
 void print(float f)
          列印一個浮點數。
 void print(int i)
          列印整數。
 void print(long l)
          列印 long 整數。
 void print(Object obj)
          列印物件。
 void print(String s)
          列印字元串。
 PrintWriter printf(Locale l, String format, Object... args)
          使用指定格式字元串和參數將格式化的字元串寫入此 writer 的便捷方法。
 PrintWriter printf(String format, Object... args)
          使用指定格式字元串和參數將格式化的字元串寫入此 writer 的便捷方法。
 void println()
          通過寫入行分隔符字元串終止當前行。
 void println(boolean x)
          列印 boolean 值,然後終止該行。
 void println(char x)
          列印字元,然後終止該行。
 void println(char[] x)
          列印字元陣列,然後終止該行。
 void println(double x)
          列印雙精度浮點數,然後終止該行。
 void println(float x)
          列印浮點數,然後終止該行。
 void println(int x)
          列印整數,然後終止該行。
 void println(long x)
          列印 long 整數,然後終止該行。
 void println(Object x)
          列印 Object,然後終止該行。
 void println(String x)
          列印 String,然後終止該行。
protected  void setError()
          指示已發生錯誤。
 void write(char[] buf)
          寫入字元陣列。
 void write(char[] buf, int off, int len)
          寫入字元陣列的某一部分。
 void write(int c)
          寫入單個字元。
 void write(String s)
          寫入字元串。
 void write(String s, int off, int len)
          寫入字元串的某一部分。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

欄位詳細資訊

out

protected Writer out
PrintWriter 的底層字元輸出串流。

從以下版本開始:
1.2
建構子詳細資訊

PrintWriter

public PrintWriter(Writer out)
創建不帶自動行刷新的新 PrintWriter。

參數:
out - 字元輸出串流

PrintWriter

public PrintWriter(Writer out,
                   boolean autoFlush)
創建新 PrintWriter。

參數:
out - 字元輸出串流
autoFlush - boolean 變數;如果為 true,則 printlnprintfformat 方法將刷新輸出緩衝區

PrintWriter

public PrintWriter(OutputStream out)
根據現有的 OutputStream 創建不帶自動行刷新的新 PrintWriter。此便捷建構子創建必要的中間 OutputStreamWriter,後者使用預設字元編碼將字元轉換為位元組。

參數:
out - 輸出串流
另請參見:
OutputStreamWriter.OutputStreamWriter(java.io.OutputStream)

PrintWriter

public PrintWriter(OutputStream out,
                   boolean autoFlush)
通過現有的 OutputStream 創建新的 PrintWriter。此便捷建構子創建必要的中間 OutputStreamWriter,後者使用預設字元編碼將字元轉換為位元組。

參數:
out - 輸出串流
autoFlush - boolean 變數;如果為 true,則 printlnprintfformat 方法將刷新輸出緩衝區
另請參見:
OutputStreamWriter.OutputStreamWriter(java.io.OutputStream)

PrintWriter

public PrintWriter(String fileName)
            throws FileNotFoundException
創建具有指定檔案名稱且不帶自動行刷新的新 PrintWriter。此便捷建構子創建必要的中間 OutputStreamWriter,後者將使用此 Java 虛擬機器實例的預設 charset 進行字元編碼。

參數:
fileName - 用作此 writer 目標的檔案名稱。如果存在該檔案,則將其大小截取為零;否則,創建一個新檔案。將輸出寫入檔案中,並對其進行緩衝處理。
拋出:
FileNotFoundException - 如果給定的字元串不表示現有的可寫常規檔案,並且無法創建該名稱的新常規檔案,或者在打開或創建檔案時發生其他一些錯誤
SecurityException - 如果存在安全管理器,並且 checkWrite(fileName) 拒絕對檔案進行寫入存取。
從以下版本開始:
1.5

PrintWriter

public PrintWriter(String fileName,
                   String csn)
            throws FileNotFoundException,
                   UnsupportedEncodingException
創建具有指定檔案名稱和字元集且不帶自動行刷新的新 PrintWriter。此便捷建構子創建必要的中間 OutputStreamWriter,後者將使用提供的字元集進行字元編碼。

參數:
fileName - 用作此 writer 目標的檔案名稱。如果存在該檔案,則將其大小截取為零;否則,創建一個新檔案。將輸出寫入檔案中,並對其進行緩衝處理。
csn - 受支持的字元集的名稱
拋出:
FileNotFoundException - 如果給定的字元串不表示現有的可寫常規檔案,並且無法創建該名稱的新常規檔案,或者在打開或創建檔案時發生其他一些錯誤
SecurityException - 如果存在安全管理器,並且 checkWrite(fileName) 拒絕對檔案進行寫入存取。
UnsupportedEncodingException - 如果不支持指定字元集
從以下版本開始:
1.5

PrintWriter

public PrintWriter(File file)
            throws FileNotFoundException
使用指定檔案創建不具有自動行刷新的新 PrintWriter。此便捷建構子創建必要的中間 OutputStreamWriter,後者將使用此 Java 虛擬機器實例的預設 charset 進行字元編碼。

參數:
file - 作為此 writer 的目標使用的檔案。如果存在該檔案,則將其大小截取為零;否則,創建一個新檔案。將輸出寫入檔案中,並對其進行緩衝處理。
拋出:
FileNotFoundException - 如果給定的檔案物件不表示現有的可寫常規檔案,並且無法創建該名稱的新常規檔案,或者在打開或創建檔案時發生其他一些錯誤
SecurityException - 如果存在安全管理器,並且 checkWrite(file.getPath()) 拒絕對檔案進行寫入存取。
從以下版本開始:
1.5

PrintWriter

public PrintWriter(File file,
                   String csn)
            throws FileNotFoundException,
                   UnsupportedEncodingException
創建具有指定檔案和字元集且不帶自動刷行新的新 PrintWriter。此便捷建構子創建必要的中間 OutputStreamWriter,後者將使用提供的字元集進行字元編碼。

參數:
file - 作為此 writer 的目標使用的檔案。如果存在該檔案,則將其大小截取為零;否則,創建一個新檔案。將輸出寫入檔案中,並對其進行緩衝處理。
csn - 受支持的字元集的名稱
拋出:
FileNotFoundException - 如果給定的檔案物件不表示現有的可寫常規檔案,並且無法創建該名稱的新常規檔案,或者在打開或創建檔案時發生其他一些錯誤
SecurityException - 如果存在安全管理器,並且 checkWrite(file.getPath()) 拒絕對檔案進行寫入存取。
UnsupportedEncodingException - 如果不支持指定字元集
從以下版本開始:
1.5
方法詳細資訊

flush

public void flush()
刷新該串流的緩衝。

指定者:
介面 Flushable 中的 flush
指定者:
類別 Writer 中的 flush
另請參見:
checkError()

close

public void close()
關閉該串流並釋放與之關聯的所有系統資源。關閉以前關閉的串流無效。

指定者:
介面 Closeable 中的 close
指定者:
類別 Writer 中的 close
另請參見:
checkError()

checkError

public boolean checkError()
如果串流沒有關閉,則刷新串流且檢查其錯誤狀態。

返回:
如果該列印串流在底層輸出串流上或在格式轉換過程中遇到錯誤,則返回 true

setError

protected void setError()
指示已發生錯誤。

在調用 clearError() 之前,此方法將導致 checkError() 的後續調用返回 true


clearError

protected void clearError()
清除此串流的錯誤狀態。

在另一個寫入操作失敗並調用 setError() 之前,此方法將導致 checkError() 的後續調用返回 false

從以下版本開始:
1.6

write

public void write(int c)
寫入單個字元。

覆寫:
類別 Writer 中的 write
參數:
c - 指定要寫入的字元的 int。

write

public void write(char[] buf,
                  int off,
                  int len)
寫入字元陣列的某一部分。

指定者:
類別 Writer 中的 write
參數:
buf - 字元陣列
off - 以其處開始寫入字元的偏移量
len - 要寫入的字元數

write

public void write(char[] buf)
寫入字元陣列。此方法不能從 Writer 類別繼承,因為它必須取消 I/O 異常。

覆寫:
類別 Writer 中的 write
參數:
buf - 要寫入的字元陣列

write

public void write(String s,
                  int off,
                  int len)
寫入字元串的某一部分。

覆寫:
類別 Writer 中的 write
參數:
s - 字元串
off - 以其處開始寫入字元的偏移量
len - 要寫入的字元數

write

public void write(String s)
寫入字元串。此方法不能從 Writer 類別繼承,因為它必須取消 I/O 異常。

覆寫:
類別 Writer 中的 write
參數:
s - 要寫入的字元串

print

public void print(boolean b)
列印 boolean 值。按照平臺的預設字元編碼將 String.valueOf(boolean) 產生的字元串轉換為位元組,並完全以 write(int) 方法的方式寫入這些位元組。

參數:
b - 要列印的 boolean

print

public void print(char c)
列印字元。按照平臺的預設字元編碼將字元轉換為一個或多個位元組,並完全以 write(int) 方法的方式寫入這些位元組。

參數:
c - 要列印的 char

print

public void print(int i)
列印整數。按照平臺的預設位元組編碼將 String.valueOf(int) 產生的字元串轉換為位元組,並完全以 write(int) 方法的方式寫入這些位元組。

參數:
i - 要列印的 int
另請參見:
Integer.toString(int)

print

public void print(long l)
列印 long 整數。按照平臺的預設字元編碼將 String.valueOf(long) 產生的字元串轉換為位元組,並完全以 write(int) 方法的方式寫入這些位元組。

參數:
l - 要列印的 long
另請參見:
Long.toString(long)

print

public void print(float f)
列印一個浮點數。按照平臺的預設字元編碼將 String.valueOf(float) 產生的字元串轉換為位元組,並完全以 write(int) 方法的方式寫入這些位元組。

參數:
f - 要列印的 float
另請參見:
Float.toString(float)

print

public void print(double d)
列印 double 精度浮點數。按照平臺的預設字元編碼將 String.valueOf(double) 產生的字元串轉換為位元組,並完全以 write(int) 方法的方式寫入這些位元組。

參數:
d - 要列印的 double
另請參見:
Double.toString(double)

print

public void print(char[] s)
列印字元陣列。按照平臺的預設字元編碼將字元轉換為位元組,並完全以 write(int) 方法的方式寫入這些位元組。

參數:
s - 要列印的字元陣列
拋出:
NullPointerException - 如果 snull

print

public void print(String s)
列印字元串。如果參數為 null,則列印字元串 "null"。否則,按照平臺的預設字元編碼將字元串的字元轉換為位元組,並完全以 write(int) 方法的方式寫入這些位元組。

參數:
s - 要列印的 String

print

public void print(Object obj)
列印物件。按照平臺的預設字元串編碼將 String.valueOf(Object) 方法產生的字元串轉換為位元組,並完全以 write(int) 方法的方式寫入這些位元組。

參數:
obj - 要列印的 Object
另請參見:
Object.toString()

println

public void println()
通過寫入行分隔符字元串終止當前行。行分隔符字元串由系統屬性 line.separator 定義,不一定是單個換行符 ('\n')。


println

public void println(boolean x)
列印 boolean 值,然後終止該行。此方法的行為就像先調用 print(boolean) 然後調用 println() 一樣。

參數:
x - 要列印的 boolean

println

public void println(char x)
列印字元,然後終止該行。此方法的行為就像先調用 print(char) 然後調用 println() 一樣。

參數:
x - 要列印的 char

println

public void println(int x)
列印整數,然後終止該行。此方法的行為就像先調用 print(int) 然後調用 println() 一樣。

參數:
x - 要列印的 int

println

public void println(long x)
列印 long 整數,然後終止該行。此方法的行為就像先調用 print(long) 然後調用 println() 一樣。

參數:
x - 要列印的 long

println

public void println(float x)
列印浮點數,然後終止該行。此方法的行為就像先調用 print(float) 然後調用 println() 一樣。

參數:
x - 要列印的 float

println

public void println(double x)
列印雙精度浮點數,然後終止該行。此方法的行為就像先調用 print(double) 然後調用 println() 一樣。

參數:
x - 要列印的 double

println

public void println(char[] x)
列印字元陣列,然後終止該行。此方法的行為就像先調用 print(char[]) 然後調用 println() 一樣。

參數:
x - 要列印的 char 值的陣列

println

public void println(String x)
列印 String,然後終止該行。此方法的行為就像先調用 print(String) 然後調用 println() 一樣。

參數:
x - 要列印的 String

println

public void println(Object x)
列印 Object,然後終止該行。此方法首先調用 String.valueOf(x) 以獲取列印物件的字元串值,行為就像先調用 print(String) 然後調用 println() 一樣。

參數:
x - 要列印的 Object

printf

public PrintWriter printf(String format,
                          Object... args)
使用指定格式字元串和參數將格式化的字元串寫入此 writer 的便捷方法。如果啟用自動刷新,則調用此方法將刷新輸出緩衝區。

調用此方法的 out.printf(format, args) 形式,行為與以下調用完全相同:

     out.format(format, args) 

參數:
format - 在格式字元串的語法中描述的格式字元串。
args - 格式字元串中的格式說明符參考的參數。如果參數多於格式說明符,則忽略額外的參數。參數的數量是可變的,並且可以為零。參數的最大數量受到 Java Virtual Machine Specification 定義的 Java 陣列的最大維數的限制。針對 null 參數的行為依賴於轉換
返回:
此 writer
拋出:
IllegalFormatException - 如果格式字元串包含非法語法、與給定參數不相容的格式說明符、對給定格式字元串而言不夠充足的參數或其他非法條件。有關所有可能的格式錯誤的規範,請參閱 formatter 類別規範的詳細資訊部分。
NullPointerException - 如果 formatnull
從以下版本開始:
1.5

printf

public PrintWriter printf(Locale l,
                          String format,
                          Object... args)
使用指定格式字元串和參數將格式化的字元串寫入此 writer 的便捷方法。如果啟用自動刷新,則調用此方法將刷新輸出緩衝區。

調用此方法的 out.printf(l, format, args) 形式,行為與以下調用完全相同:

     out.format(l, format, args) 

參數:
l - 格式化過程中應用的 locale。如果 lnull,則不應用本地化。
format - 在格式字元串的語法中描述的格式字元串。
args - 格式字元串中的格式說明符參考的參數。如果參數多於格式說明符,則忽略額外的參數。參數的數量是可變的,並且可以為零。參數的最大數量受到 Java Virtual Machine Specification 定義的 Java 陣列的最大維數的限制。針對 null 參數的行為依賴於轉換
返回:
此 writer
拋出:
IllegalFormatException - 如果格式字元串包含非法語法、與給定參數不相容的格式說明符、對給定格式字元串而言不夠充足的參數或其他非法條件。有關所有可能的格式錯誤的規範,請參閱 formatter 類別規範的詳細資訊部分。
NullPointerException - 如果 formatnull
從以下版本開始:
1.5

format

public PrintWriter format(String format,
                          Object... args)
使用指定格式字元串和參數將一個格式化字元串寫入此 writer 中。如果啟用自動刷新,則調用此方法將刷新輸出緩衝區。

始終使用的語言環境是由 Locale.getDefault() 返回的語言環境,不管以前在此物件上調用了其他什麼樣的格式化方法。

參數:
format - 在格式字元串的語法中描述的格式字元串。
args - 格式字元串中的格式說明符參考的參數。如果參數多於格式說明符,則忽略額外的參數。參數的數量是可變的,並且可以為零。參數的最大數量受到 Java Virtual Machine Specification 定義的 Java 陣列的最大維數的限制。針對 null 參數的行為依賴於 conversion
返回:
此 writer
拋出:
IllegalFormatException - 如果格式字元串包含非法語法、與給定參數不相容的格式說明符、對給定格式字元串而言不夠充足的參數或其他非法條件。有關所有可能的格式錯誤的規範,請參閱 formatter 類別規範的詳細資訊部分。
NullPointerException - 如果 formatnull
從以下版本開始:
1.5

format

public PrintWriter format(Locale l,
                          String format,
                          Object... args)
使用指定格式字元串和參數將一個格式化字元串寫入此 writer 中。如果啟用自動刷新,則調用此方法將刷新輸出緩衝區。

參數:
l - 格式化過程中應用的 locale。如果 lnull,則不應用本地化。
format - 在格式字元串的語法中描述的格式字元串。
args - 格式字元串中的格式說明符參考的參數。如果參數多於格式說明符,則忽略額外的參數。參數的數量是可變的,並且可以為零。參數的最大數量受到 Java Virtual Machine Specification 定義的 Java 陣列的最大維數的限制。針對 null 參數的行為依賴於 conversion
返回:
此 writer
拋出:
IllegalFormatException - 如果格式字元串包含非法語法、與給定參數不相容的格式說明符、對給定格式字元串而言不夠充足的參數或其他非法條件。有關所有可能的格式錯誤的規範,請參閱 formatter 類別規範的詳細資訊部分。
NullPointerException - 如果 formatnull
從以下版本開始:
1.5

append

public PrintWriter append(CharSequence csq)
將指定的字元序列添加到此 writer。

此方法調用 out.append(csq) 的行為與調用下列方法完全相同:

     out.write(csq.toString()) 

可能不添加整個序列,也可能添加,具體取決於字元序列 csqtoString 指定。例如,調用一個字元緩衝區的 toString 方法將返回一個子序列,其內容取決於緩衝區的位置和限制。

指定者:
介面 Appendable 中的 append
覆寫:
類別 Writer 中的 append
參數:
csq - 要添加的字元串序列。如果 csqnull,則向此 writer 添加四個字元 "null"
返回:
此 writer
從以下版本開始:
1.5

append

public PrintWriter append(CharSequence csq,
                          int start,
                          int end)
將指定字元序列的子序列添加到此 writer。

csq 不為 null 時,調用該方法的 out.append(csq、 start、 end) 形式,行為與以下調用完全相同:

     out.write(csq.subSequence(start, end).toString()) 

指定者:
介面 Appendable 中的 append
覆寫:
類別 Writer 中的 append
參數:
csq - 要添加子序列的字元序列。如果 csqnull,則添加四個字元 "null",就好像 csq 套件含這些字元一樣。
start - 子序列中第一個字元的索引
end - 子序列中最後一個字元後面的字元的索引
返回:
此 writer
拋出:
IndexOutOfBoundsException - 如果 startend 為負,而 start 大於 end 或者 end 大於 csq.length()
從以下版本開始:
1.5

append

public PrintWriter append(char c)
將指定字元添加到此 writer。

調用此方法的 out.append(c) 形式,行為與以下調用完全相同:

     out.write(c) 

指定者:
介面 Appendable 中的 append
覆寫:
類別 Writer 中的 append
參數:
c - 要添加的 16 位字元
返回:
此 writer
從以下版本開始:
1.5

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only