一、字符輸出流
java.io.Writer抽象類是表示用于寫出字符流的所有類的超類,將指定的字符信息寫出到目的地。
它定義了字節(jié)輸出流的基本共性功能方法。
void write(int c)寫入單個字符。寫入0到65535之間的Unicode碼。
void write(char[]cbuf)把整個字符數(shù)組的內(nèi)容寫進去。
abstract void write(char[]cbuf,int off,int len)寫入字符數(shù)組的某一部分,off數(shù)組的開始索引,len寫的字符個數(shù)。
void write(String str)寫入字符串。
void write(String str,int off,int len)寫入字符串的某一部分,off字符串的開始索引,len寫的字符個數(shù)。
void flush()刷新該流的緩沖,則立即將它們寫入預(yù)期目標。
void close()關(guān)閉此輸出流并釋放與該流關(guān)聯(lián)的所有系統(tǒng)資源
Writer抽象類下面的子類結(jié)構(gòu):
圖中深色的為節(jié)點流,淺色的為處理流。
二、FileWriter類
java.io.FileWriter類是寫出字符到文件的便利類。構(gòu)造時使用系統(tǒng)默認的字符編碼和默認字節(jié)緩沖區(qū)。
作用:把內(nèi)存中字符數(shù)據(jù)寫入到文件中。
1、構(gòu)造方法
FileWriter(File file):創(chuàng)建一個新的FileWriter,給定要讀取的File對象。
FileWriter(String fileName):創(chuàng)建一個新的FileWriter,給定要讀取的文件的名稱。
參數(shù):寫入數(shù)據(jù)的目的地。
File file:文件對象
String fileName:文件的路徑。
構(gòu)造方法作用:
①會創(chuàng)建一個FileWriter對象
②會根據(jù)構(gòu)造方法中傳遞的文件/文件的路徑,創(chuàng)建對象
③會把FileWriter對象指向創(chuàng)建好的文件。
字符輸出流的使用步驟【重要】:
①創(chuàng)建FileWriter對象,構(gòu)造方法中綁定要寫入數(shù)據(jù)的目的地
②使用FileWriter中的方法write,把數(shù)據(jù)寫入到內(nèi)存緩沖區(qū)中(字符轉(zhuǎn)換為字節(jié)的過程)
③使用FileWriter中的方法flush,把內(nèi)存緩沖區(qū)中的數(shù)據(jù),刷新到文件中
④釋放資源(會先把內(nèi)存緩沖區(qū)中的數(shù)據(jù)刷新到文件中)
2、基本寫入數(shù)據(jù)
(1)寫出字符:write(int b)方法,每次可以寫出一個字符數(shù)據(jù),代碼使用演示:
public?static?void?main(String[]?args)?throws?IOException?{????????//1.創(chuàng)建FileWriter對象,構(gòu)造方法中綁定要寫入數(shù)據(jù)的目的地????????FileWriter?fw?=?new?FileWriter("E:d.txt");????????//2.使用FileWriter中的方法write,把數(shù)據(jù)寫入到內(nèi)存緩沖區(qū)中(字符轉(zhuǎn)換為字節(jié)的過程)????????//void?write(int?c)?寫入單個字符。????????fw.write(97);????????//3.使用FileWriter中的方法flush,把內(nèi)存緩沖區(qū)中的數(shù)據(jù),刷新到文件中????????fw.flush();????????//4.釋放資源(會先把內(nèi)存緩沖區(qū)中的數(shù)據(jù)刷新到文件中)????????fw.close();????}
注意:如果未調(diào)用close方法,數(shù)據(jù)只是保存到了緩沖區(qū),并未寫出到文件中。
(2)關(guān)閉與刷新
區(qū)別:
flush:刷新緩沖區(qū),流對象可以繼續(xù)使用。
close:先刷新緩沖區(qū),然后通知系統(tǒng)釋放資源。流對象不可以再被使用了。
public?static?void?main(String[]?args)?throws?IOException?{????????//1.創(chuàng)建FileWriter對象,構(gòu)造方法中綁定要寫入數(shù)據(jù)的目的地????????FileWriter?fw?=?new?FileWriter("E:e.txt");????????//2.使用FileWriter中的方法write,把數(shù)據(jù)寫入到內(nèi)存緩沖區(qū)中(字符轉(zhuǎn)換為字節(jié)的過程)????????//void?write(int?c)?寫入單個字符。????????fw.write(97);????????//3.使用FileWriter中的方法flush,把內(nèi)存緩沖區(qū)中的數(shù)據(jù),刷新到文件中????????fw.flush();????????//刷新之后流可以繼續(xù)使用????????fw.write(98);????????//4.釋放資源(會先把內(nèi)存緩沖區(qū)中的數(shù)據(jù)刷新到文件中)????????fw.close();????????//close方法之后流已經(jīng)關(guān)閉了,已經(jīng)從內(nèi)存中消失了,流就不能再使用了????????fw.write(99);//IOException:?Stream?closed????}
注意:即便是flush方法寫出了數(shù)據(jù),操作的最后還是要調(diào)用close方法,釋放系統(tǒng)資源。
以上就是深圳達內(nèi)教育java培訓機構(gòu)的小編針對“編程基礎(chǔ)入門之Java字符輸出流”的內(nèi)容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。