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