Java基礎知識強化之IO流筆記37:FileReader/FileWriter(轉換流的子類)複製文本文件案例

1. 轉換流的簡化寫法:java

因爲咱們常見的操做都是使用本地默認編碼,因此,不用指定編碼。
而轉換流的名稱有點長,因此,Java就提供了其子類供咱們使用:FileReader FileWriter
OutputStreamWriter = FileOutputStream + 編碼表(GBK)
FileWriter = FileOutputStream + 編碼表(GBK)

InputStreamReader = FileInputStream + 編碼表(GBK)
FileReader = FileInputStream + 編碼表(GBK)

2.  FileReader / FileWriter二者的構造方法:數組

(1)FileReader的構造方法app

構造方法摘要
FileReader(File file)
          在給定從中讀取數據的 File 的狀況下建立一個新 FileReader
FileReader(FileDescriptor fd)
          在給定從中讀取數據的 FileDescriptor 的狀況下建立一個新 FileReader
FileReader(String fileName)
          在給定從中讀取數據的文件名的狀況下建立一個新 FileReader

(2)FileWriter的構造方法編碼

構造方法摘要
FileWriter(File file)
          根據給定的 File 對象構造一個 FileWriter 對象。
FileWriter(File file, boolean append)
          根據給定的 File 對象構造一個 FileWriter 對象。
FileWriter(FileDescriptor fd)
          構造與某個文件描述符相關聯的 FileWriter 對象。
FileWriter(String fileName)
          根據給定的文件名構造一個 FileWriter 對象。
FileWriter(String fileName, boolean append)
          根據給定的文件名以及指示是否附加寫入數據的 boolean 值來構造 FileWriter 對象。


3. 需求:把當前項目目錄下的a.txt內容複製到當前項目目錄下的b.txt中

 數據源:
   a.txt -- 讀取數據 -- 字符轉換流 -- InputStreamReader -- FileReader
 目的地:
   b.txt -- 寫出數據 -- 字符轉換流 -- OutputStreamWriter -- FileWriterspa

 

4. 代碼示例:code

 1 package cn.itcast_04;  2 
 3 import java.io.FileReader;  4 import java.io.FileWriter;  5 import java.io.IOException;  6 
 7 /*
 8  * 需求:把當前項目目錄下的a.txt內容複製到當前項目目錄下的b.txt中  9  * 10  * 數據源: 11  * a.txt -- 讀取數據 -- 字符轉換流 -- InputStreamReader -- FileReader 12  * 目的地: 13  * b.txt -- 寫出數據 -- 字符轉換流 -- OutputStreamWriter -- FileWriter 14  */
15 public class CopyFileDemo2 { 16     public static void main(String[] args) throws IOException { 17         // 封裝數據源
18         FileReader fr = new FileReader("a.txt"); 19         // 封裝目的地
20         FileWriter fw = new FileWriter("b.txt"); 21 
22         // 一次一個字符 23         // int ch = 0; 24         // while ((ch = fr.read()) != -1) { 25         // fw.write(ch); 26         // } 27 
28         // 一次一個字符數組
29         char[] chs = new char[1024]; 30         int len = 0; 31         while ((len = fr.read(chs)) != -1) { 32             fw.write(chs, 0, len); 33  fw.flush(); 34  } 35 
36         // 釋放資源
37  fw.close(); 38  fr.close(); 39  } 40 }

 運行結果,以下:對象

相關文章
相關標籤/搜索