更新時(shí)間:2020-07-28 16:38:56 來源:動力節(jié)點(diǎn) 瀏覽2299次
一、字符輸出流
java.io.Writer抽象類是表示用于寫出字符流的所有類的超類,將指定的字符信息寫出到目的地。
它定義了字節(jié)輸出流的基本共性功能方法。
void write(int c)寫入單個(gè)字符。寫入0到65535之間的Unicode碼。
void write(char[]cbuf)把整個(gè)字符數(shù)組的內(nèi)容寫進(jìn)去。
abstract void write(char[]cbuf,int off,int len)寫入字符數(shù)組的某一部分,off數(shù)組的開始索引,len寫的字符個(gè)數(shù)。
void write(String str)寫入字符串。
void write(String str,int off,int len)寫入字符串的某一部分,off字符串的開始索引,len寫的字符個(gè)數(shù)。
void flush()刷新該流的緩沖,則立即將它們寫入預(yù)期目標(biāo)。
void close()關(guān)閉此輸出流并釋放與該流關(guān)聯(lián)的所有系統(tǒng)資源
Writer抽象類下面的子類結(jié)構(gòu):
圖中深色的為節(jié)點(diǎn)流,淺色的為處理流。
二、FileWriter類
java.io.FileWriter類是寫出字符到文件的便利類。構(gòu)造時(shí)使用系統(tǒng)默認(rèn)的字符編碼和默認(rèn)字節(jié)緩沖區(qū)。
作用:把內(nèi)存中字符數(shù)據(jù)寫入到文件中。
1、構(gòu)造方法
FileWriter(File file):創(chuàng)建一個(gè)新的FileWriter,給定要讀取的File對象。
FileWriter(String fileName):創(chuàng)建一個(gè)新的FileWriter,給定要讀取的文件的名稱。
參數(shù):寫入數(shù)據(jù)的目的地。
File file:文件對象
String fileName:文件的路徑。
構(gòu)造方法作用:
①會創(chuàng)建一個(gè)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)方法,每次可以寫出一個(gè)字符數(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)?寫入單個(gè)字符。
????????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)?寫入單個(gè)字符。
????????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)資源。
以上就是動力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對“編程基礎(chǔ)入門之Java字符輸出流”的內(nèi)容進(jìn)行的回答,希望對大家有所幫助,如有疑問,請?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)閱讀
初級 202925
初級 203221
初級 202629
初級 203743