日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java知多少(68)面向字符的输出流

發布時間:2023/11/29 java 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java知多少(68)面向字符的输出流 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

面向字符的輸出流都是類 Writer 的子類,其類層次結構如圖 10-5 所示。


圖10-5 Writer的類層次結構圖


表 10-3 列出了 Writer 的主要子類及說明。

表 10-3 Writer 的主要子類類名功能說明
CharArrayWriter寫到字符數組的輸出流
BufferedWriter緩沖輸出字符流
PipedWriter輸出管道
OutputStreamWriter轉換字符到字節的輸出流
FilterWriter過濾輸出流
StringWriter輸出到字符串的輸出流
PrintWriter包含 print()和 println()的輸出流
FileWriter輸出到文件的輸出流


Writer 所提供的方法如表 10-4 所示。

表 10-4 Writer 的常用方法方法功能描述
void close()關閉輸出流
void flush()將緩沖區中的數據寫到文件中
void writer(int c)將單一字符 c 輸出到流中
void writer(String str)將字符串 str 輸出到流中
void writer(char[] ch)將字符數組 ch 輸出到流
void writer(char[] ch, int offset, int length)將一個數組內自 offset 起到 length 長的字符輸出到流

使用 FileWriter 類寫入文件

FileWriter 類是 Writer 子類 OutputStreamWriter 類的子類,因此 FileWriter 類既可以使用 Writer類的方法也可以使用 OutputStreamWriter 類的方法來創建對象。

在使用 FileWriter 類寫入文件時,必須先調用 FileWriter()構造方法創建 FileWriter 類的對象,再調用 writer()方法。FileWriter 構造方法的格式為:
? ??public FileWriter(String name); ?//根據文件名創建一個可寫入的輸出流對象
? ? public FileWriter(String name,Boolean a); ?//a 為真,數據將追加在文件后面

【例 10-3】利用 FileWriter 類將 ASCⅡ字符寫入到文件中

1 import java.io.*; 2 class ep10_3{ 3 public static void main(String args[]){ 4 try{ 5 FileWriter a=new FileWriter("ep10_3.txt"); 6 for(int i=32;i<126;i++){ 7 a.write(i); 8 } 9 a.close(); 10 } 11 catch(IOException e){} 12 } 13 }

運行后程序后,打開 ep10_3.txt 文件,顯示內容為:

!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}

使用 BufferedWriter 類寫入文件

BufferedWriter 類是用來將數據寫入到緩沖區。使用時必須創建 FileWriter 類對象,再以該對象為參數創建 BufferedWriter 類的對象,最后需要用 flush()方法將緩沖區清空。BufferedWriter類有兩個構造方法,其格式為:
? ??public BufferedWriter(Writer out); ?//創建緩沖區字符輸出流
? ? public BufferedWriter(Writer out,int size); ?//創建輸出流并設置緩沖區大小

【例 10-4】利用 BufferedWriter 類進行文件復制

1 import java.io.*; 2 class ep10_4{ 3 public static void main(String args[]){ 4 String str=new String(); 5 try{ 6 BufferedReader in=new 7 BufferedReader(new FileReader("ep10_4_a.txt")); 8 BufferedWriter out=new 9 BufferedWriter(new FileWriter("ep10_4_b.txt")); 10 while((str=in.readLine())!=null){ 11 System.out.println(str); 12 out.write(str); //將讀取到的 1 行數據寫入輸出流 13 out.newLine(); //寫入換行符 14 } 15 out.flush(); 16 in.close(); 17 out.close(); 18 } 19 catch(IOException e){ 20 System.out.println("出現錯誤"+e); 21 } 22 } 23 }

需要注意的是,調用 out 對象的 write()方法寫入數據時,不會寫入回車,因此需要使用newLine()方法在每行數據后加入回車,以保證目標文件與源文件相一致。

系列文章: Java知多少(上)

轉載于:https://www.cnblogs.com/Coda/p/4516250.html

總結

以上是生活随笔為你收集整理的Java知多少(68)面向字符的输出流的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。