將文本寫(xiě)入字符輸出流并緩沖字符以便能提供單字符、數(shù)組和行的高效寫(xiě)入。
可指定緩沖區(qū)尺寸或接受缺省尺寸。該缺省尺寸對(duì)大多數(shù)用途來(lái)說(shuō)是足夠的。
提供了 newLine() 方法, 它使用系統(tǒng)自身的行分隔符概念作為系統(tǒng)定義的
line.separator 特性。并非所有平臺(tái)使用換行符 ('\n') 來(lái)終止行。因此最好調(diào)用該方法來(lái)終止每個(gè)輸出行而非直接寫(xiě)換行符。
一般, Writer 直接將其輸出發(fā)送給基本字符或字節(jié)流。除非請(qǐng)求提示輸出,建議將 BufferedWriter 和任何代價(jià)高昂 write() 操作的 Writer 打包,如
FileWriters 和 OutputStreamWriters 。例如,
PrintWriter out
= new PrintWriter(new BufferedWriter(new FileWriter("foo.out")));
將 PrintWriter 的輸出緩沖到文件中。若無(wú)緩沖,則每個(gè) print() 方法的調(diào)用將字符轉(zhuǎn)換成字節(jié),然后直接寫(xiě)入文件中,這是非常低效的。
類(lèi) java.io.BufferedWriter
類(lèi) java.io.BufferedWriter
java.lang.Object
|
+----java.io.Writer
|
+----java.io.BufferedWriter
- public class BufferedWriter
- extends Writer
- 出現(xiàn)于:
- JDK1.1
- 參見(jiàn):
- PrintWriter, FileWriter, OutputStreamWriter
構(gòu)造子索引
- BufferedWriter(Writer)
- 創(chuàng)建使用缺省尺寸輸出緩沖區(qū)的緩沖字符輸出流。
- BufferedWriter(Writer, int)
- 創(chuàng)建使用給定尺寸輸出緩沖區(qū)的新的緩沖字符輸出流。
方法索引
- close()
- 關(guān)閉流。
- flush()
- 刷新流。
- newLine()
- 寫(xiě)一個(gè)行分隔符。
- write(char[], int, int)
- 寫(xiě)入字符數(shù)組的一部分。
- write(int)
- 寫(xiě)入單個(gè)字符。
- write(String, int, int)
- 寫(xiě)入某 String 的一部分。
構(gòu)造子
BufferedWriter
public BufferedWriter(Writer out)
- 創(chuàng)建使用缺省尺寸輸出緩沖區(qū)的緩沖的字符輸出流。
- 參數(shù):
- out - 一個(gè) Writer
BufferedWriter
public BufferedWriter(Writer out,
int sz)
- 創(chuàng)建使用給定尺寸輸出緩沖區(qū)的新建緩沖字符輸出流。
- 參數(shù):
- out - 一個(gè) Writer
- sz - 輸出緩沖區(qū)尺寸, 正整數(shù)
- 拋出:
IllegalArgumentException
- 若 sz <= 0
方法
write
public void write(int c) throws IOException
- 寫(xiě)入單個(gè)字符。
- 拋出:
IOException
- 如果發(fā)生一 I/O 錯(cuò)誤。
- 覆蓋:
- 類(lèi)
Writer 中的 write 。
write
public void write(char cbuf[],
int off,
int len) throws IOException
- 寫(xiě)入字符數(shù)組的一部分。
通常該方法將給定數(shù)組中的字符存儲(chǔ)到該流的緩沖區(qū)中,需要時(shí)可將緩沖區(qū)刷新為基本輸出流。若請(qǐng)求長(zhǎng)度至少與該流的緩沖區(qū)同樣大,則該方法將刷新緩沖區(qū)并直接將字符寫(xiě)入基本輸出流。因此冗余的 BufferedWriter
不必復(fù)制不必要的數(shù)據(jù)。
- 參數(shù):
- cbuf - 一個(gè)字符數(shù)組。
- off - 開(kāi)始讀數(shù)字符的偏移
- len - 寫(xiě)入的字符數(shù)
- 拋出:
IOException
- 如果發(fā)生一 I/O 錯(cuò)誤。
- 覆蓋:
- 類(lèi)
Writer
中的 write 。
write
public void write(String s,
int off,
int len) throws IOException
- 寫(xiě)入某 String 的一部分。
- 參數(shù):
- s - 待寫(xiě)入的 String
- off - 開(kāi)始讀取字符的偏移量
- len - 待寫(xiě)入的字節(jié)數(shù)
- 拋出:
IOException
- 如果發(fā)生一 I/O 錯(cuò)誤。
- 覆蓋:
- 類(lèi) Writer
中的
write 。
newLine
public void newLine() throws IOException
- 寫(xiě)一個(gè)行分隔符。行分隔符由系統(tǒng)特性 line.separator 定義且不必是一個(gè)單個(gè)換行 ('\n') 符。
- 拋出:
IOException
- 如果發(fā)生一 I/O 錯(cuò)誤。
flush
public void flush() throws IOException
- 刷新流。
- 拋出:
IOException
- 如果發(fā)生一 I/O 錯(cuò)誤。
- 覆蓋:
- 類(lèi)
Writer 中的
flush。
close
public void close() throws IOException
- 關(guān)閉流。
- 拋出:
IOException
- 如果發(fā)生一 I/O 錯(cuò)誤。
- 覆蓋:
- 類(lèi)
Writer 中的
close 。