JavaTM 2 Platform
Standard Ed. 6

java.io
類別 Writer

java.lang.Object
  繼承者 java.io.Writer
所有已實作的介面:
Closeable, Flushable, Appendable
直接已知子類別:
BufferedWriter, CharArrayWriter, FilterWriter, OutputStreamWriter, PipedWriter, PrintWriter, StringWriter

public abstract class Writer
extends Object
implements Appendable, Closeable, Flushable

寫入字元串流的抽象類別。子類別必須實作的方法僅有 write(char[], int, int)、flush() 和 close()。但是,多數子類別將覆寫此處定義的一些方法,以提供更高的效率和/或其他功能。

從以下版本開始:
JDK1.1
另請參見:
Writer, BufferedWriter, CharArrayWriter, FilterWriter, OutputStreamWriter, FileWriter, PipedWriter, PrintWriter, StringWriter, Reader

欄位摘要
protected  Object lock
          用於同步針對此串流的操作的物件。
 
建構子摘要
protected Writer()
          創建一個新的字元串流 writer,其關鍵部分將同步 writer 自身。
protected Writer(Object lock)
          創建一個新的字元串流 writer,其關鍵部分將同步給定的物件。
 
方法摘要
 Writer append(char c)
          將指定字元添加到此 writer。
 Writer append(CharSequence csq)
          將指定字元序列添加到此 writer。
 Writer append(CharSequence csq, int start, int end)
          將指定字元序列的子序列添加到此 writer.Appendable
abstract  void close()
          關閉此串流,但要先刷新它。
abstract  void flush()
          刷新該串流的緩衝。
 void write(char[] cbuf)
          寫入字元陣列。
abstract  void write(char[] cbuf, int off, int len)
          寫入字元陣列的某一部分。
 void write(int c)
          寫入單個字元。
 void write(String str)
          寫入字元串。
 void write(String str, int off, int len)
          寫入字元串的某一部分。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

欄位詳細資訊

lock

protected Object lock
用於同步針對此串流的操作的物件。為了提高效率,字元串流對象可以使用其自身以外的物件來保護關鍵部分。因此,子類別應使用此欄位中的物件,而不是 this 或者同步的方法。

建構子詳細資訊

Writer

protected Writer()
創建一個新的字元串流 writer,其關鍵部分將同步 writer 自身。


Writer

protected Writer(Object lock)
創建一個新的字元串流 writer,其關鍵部分將同步給定的物件。

參數:
lock - 要同步的物件。
方法詳細資訊

write

public void write(int c)
           throws IOException
寫入單個字元。要寫入的字元包含在給定整數值的 16 個低位中,16 高位被忽略。

用於支持高效單字元輸出的子類別應覆寫此方法。

參數:
c - 指定要寫入字元的 int。
拋出:
IOException - 如果發生 I/O 錯誤

write

public void write(char[] cbuf)
           throws IOException
寫入字元陣列。

參數:
cbuf - 要寫入的字元陣列
拋出:
IOException - 如果發生 I/O 錯誤

write

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

參數:
cbuf - 字元陣列
off - 開始寫入字元處的偏移量
len - 要寫入的字元數
拋出:
IOException - 如果發生 I/O 錯誤

write

public void write(String str)
           throws IOException
寫入字元串。

參數:
str - 要寫入的字元串
拋出:
IOException - 如果發生 I/O 錯誤

write

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

參數:
str - 字元串
off - 相對初始寫入字元的偏移量
len - 要寫入的字元數
拋出:
IndexOutOfBoundsException - 如果 offlen 為負,或者 off+len 為負或大於給定字元串的長度
IOException - 如果發生 I/O 錯誤

append

public Writer append(CharSequence csq)
              throws IOException
將指定字元序列添加到此 writer。

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

     out.write(csq.toString()) 

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

指定者:
介面 Appendable 中的 append
參數:
csq - 要添加的字元串序列。如果 csqnull,則向此 writer 添加四個字元 "null"
返回:
此 writer
拋出:
IOException - 如果發生 I/O 錯誤
從以下版本開始:
1.5

append

public Writer append(CharSequence csq,
                     int start,
                     int end)
              throws IOException
將指定字元序列的子序列添加到此 writer.Appendable

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

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

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

append

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

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

     out.write(c) 

指定者:
介面 Appendable 中的 append
參數:
c - 要添加的 16 位字元
返回:
此 writer
拋出:
IOException - 如果發生 I/O 錯誤
從以下版本開始:
1.5

flush

public abstract void flush()
                    throws IOException
刷新該串流的緩衝。如果該串流已保存緩衝區中各種 write() 方法的所有字元,則立即將它們寫入預期目標。然後,如果該目標是另一個字元或位元組串流,則將其刷新。因此,一次 flush() 調用將刷新 Writer 和 OutputStream 鏈中的所有緩衝區。

如果此串流的預期目標是由底層作業系統提供的一個抽象(如一個檔案),則刷新該串流只能保證將以前寫入到串流的位元組傳遞給作業系統進行寫入,但不保證能將這些位元組實際寫入到物理設備(如磁碟驅動器)。

指定者:
介面 Flushable 中的 flush
拋出:
IOException - 如果發生 I/O 錯誤

close

public abstract void close()
                    throws IOException
關閉此串流,但要先刷新它。在關閉該串流之後,再調用 write() 或 flush() 將導致拋出 IOException。關閉以前關閉的串流無效。

指定者:
介面 Closeable 中的 close
拋出:
IOException - 如果發生 I/O 錯誤

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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