JAVA-IO流將A檔案內容Copy到B檔案中
阿新 • • 發佈:2019-02-18
程式設計思路:
/*
* 將A檔案中的內容複製到B檔案中
*
* 複製原理:
* 其實就是將A檔案中檔案資料儲存到B檔案中
* 步驟:
* 1.在自己想要儲存的地方建立一個B檔案,用於儲存A檔案中的資料
* 2.定義讀取流和A檔案關聯
* 3.通過不斷的讀寫完成資料儲存
* 4.關閉流資源
*/
一、方法一:從A檔案中讀一個字元,就往B檔案中寫一個字元
二、方法二:先把A檔案中的內容全部讀出來後,在往B檔案中寫//方法一:從A檔案中讀一個字元,就往B檔案中寫一個字元 public static void copy_1() throws IOException{ //建立目的地 FileWriter fw= new FileWriter("DemoCope1.txt"); FileReader fr = new FileReader("E:\\JAVA\\TestMap\\src\\com\\diaobao\\map\\TastMap.java"); int num = 0; while ((num = fr.read()) !=-1) { fw.write(num); } fw.close(); fr.close(); }
//方法二:先把A檔案中的內容全部讀出來後,在往B檔案中寫 public static void Copy_2(){ FileWriter fw = null; FileReader fr = null; try { //先建立目的地檔案 fw = new FileWriter("CopyTextContent.txt"); fr= new FileReader("E:\\JAVA\\TestMap\\src\\com\\diaobao\\map\\TastMap.java"); char [] reader = new char[1024]; int num = 0; while ((num = fr.read(reader)) !=-1) { fw.write(reader,0,num); } } catch (IOException e) { throw new RuntimeException("讀寫錯誤"); }finally{ if (fw !=null) { try { fw.close(); //這裡使用try-catch是因為防止建立失敗(路徑錯誤之類),當建立失敗的時候這裡就會出現NullPointerException } catch (Exception e2) { } } if (fr !=null) { try { fr.close(); //同上 } catch (Exception e2) { } } } }
注意:在寫專案的時候一般使用方法二,還是就是一般不要使用throws來丟擲異常,使用方法二的比較好
三、方法三:使用快取區的方法進行
//使用快取區複製一個.java檔案 public static void BufferedDemo(){ BufferedWriter bfWriter = null; BufferedReader bfReader =null; try { bfWriter = new BufferedWriter(new FileWriter("Demo.txt")); bfReader = new BufferedReader(new FileReader("E:\\JAVA\\TestMap\\src\\com\\diaobao\\map\\TastMap.java")); String line = null; while ((line = bfReader.readLine())!=null) { bfWriter.write(line); bfWriter.newLine(); //因為每次是讀取一行內容,所以顯示一行後就得換行 bfWriter.flush(); //重新整理內容 } } catch (IOException e) { throw new RuntimeException("讀寫錯誤!"); }finally{ if (bfWriter !=null) { try { bfWriter.close(); } catch (Exception e2) { throw new RuntimeException("寫入關閉失敗!"); } } if (bfReader !=null) { try { bfReader.close(); } catch (Exception e2) { throw new RuntimeException("讀取關閉失敗!"); } } } }