更新時間:2020-07-28 16:38:56 來源:動力節(jié)點 瀏覽2233次
一、字符輸出流
java.io.Writer抽象類是表示用于寫出字符流的所有類的超類,將指定的字符信息寫出到目的地。
它定義了字節(jié)輸出流的基本共性功能方法。
void write(int c)寫入單個字符。寫入0到65535之間的Unicode碼。
void write(char[]cbuf)把整個字符數(shù)組的內容寫進去。
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()刷新該流的緩沖,則立即將它們寫入預期目標。
void close()關閉此輸出流并釋放與該流關聯(lián)的所有系統(tǒng)資源
Writer抽象類下面的子類結構:
圖中深色的為節(jié)點流,淺色的為處理流。
二、FileWriter類
java.io.FileWriter類是寫出字符到文件的便利類。構造時使用系統(tǒng)默認的字符編碼和默認字節(jié)緩沖區(qū)。
作用:把內存中字符數(shù)據(jù)寫入到文件中。
1、構造方法
FileWriter(File file):創(chuàng)建一個新的FileWriter,給定要讀取的File對象。
FileWriter(String fileName):創(chuàng)建一個新的FileWriter,給定要讀取的文件的名稱。
參數(shù):寫入數(shù)據(jù)的目的地。
File file:文件對象
String fileName:文件的路徑。
構造方法作用:
①會創(chuàng)建一個FileWriter對象
②會根據(jù)構造方法中傳遞的文件/文件的路徑,創(chuàng)建對象
③會把FileWriter對象指向創(chuàng)建好的文件。
字符輸出流的使用步驟【重要】:
①創(chuàng)建FileWriter對象,構造方法中綁定要寫入數(shù)據(jù)的目的地
②使用FileWriter中的方法write,把數(shù)據(jù)寫入到內存緩沖區(qū)中(字符轉換為字節(jié)的過程)
③使用FileWriter中的方法flush,把內存緩沖區(qū)中的數(shù)據(jù),刷新到文件中
④釋放資源(會先把內存緩沖區(qū)中的數(shù)據(jù)刷新到文件中)
2、基本寫入數(shù)據(jù)
(1)寫出字符:write(int b)方法,每次可以寫出一個字符數(shù)據(jù),代碼使用演示:
public?static?void?main(String[]?args)?throws?IOException?{
????????//1.創(chuàng)建FileWriter對象,構造方法中綁定要寫入數(shù)據(jù)的目的地
????????FileWriter?fw?=?new?FileWriter("E:\\d.txt");
????????//2.使用FileWriter中的方法write,把數(shù)據(jù)寫入到內存緩沖區(qū)中(字符轉換為字節(jié)的過程)
????????//void?write(int?c)?寫入單個字符。
????????fw.write(97);
????????//3.使用FileWriter中的方法flush,把內存緩沖區(qū)中的數(shù)據(jù),刷新到文件中
????????fw.flush();
????????//4.釋放資源(會先把內存緩沖區(qū)中的數(shù)據(jù)刷新到文件中)
????????fw.close();
????}
注意:如果未調用close方法,數(shù)據(jù)只是保存到了緩沖區(qū),并未寫出到文件中。
(2)關閉與刷新
區(qū)別:
flush:刷新緩沖區(qū),流對象可以繼續(xù)使用。
close:先刷新緩沖區(qū),然后通知系統(tǒng)釋放資源。流對象不可以再被使用了。
public?static?void?main(String[]?args)?throws?IOException?{
????????//1.創(chuàng)建FileWriter對象,構造方法中綁定要寫入數(shù)據(jù)的目的地
????????FileWriter?fw?=?new?FileWriter("E:\\e.txt");
????????//2.使用FileWriter中的方法write,把數(shù)據(jù)寫入到內存緩沖區(qū)中(字符轉換為字節(jié)的過程)
????????//void?write(int?c)?寫入單個字符。
????????fw.write(97);
????????//3.使用FileWriter中的方法flush,把內存緩沖區(qū)中的數(shù)據(jù),刷新到文件中
????????fw.flush();
????????//刷新之后流可以繼續(xù)使用
????????fw.write(98);
????????//4.釋放資源(會先把內存緩沖區(qū)中的數(shù)據(jù)刷新到文件中)
????????fw.close();
????????//close方法之后流已經關閉了,已經從內存中消失了,流就不能再使用了
????????fw.write(99);//IOException:?Stream?closed
????}
注意:即便是flush方法寫出了數(shù)據(jù),操作的最后還是要調用close方法,釋放系統(tǒng)資源。
以上就是動力節(jié)點java培訓機構的小編針對“編程基礎入門之Java字符輸出流”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務。
0基礎 0學費 15天面授
有基礎 直達就業(yè)
業(yè)余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習