好記性不如賴筆頭……
package com.Ckinghan.ioDemo;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
/**
* @author Ckinghan
* @描述:使用高效緩沖流複制檔案,隻能複制字元型的檔案,如視訊之類的檔案無法複制
*/
public class BufferedFileDemo {
public static void main(String[] args) {
/**
* 使用高速緩沖流實作對檔案的複制
*/
bufferedCopyFile();
}
/**
* @描述:使用高速緩沖流實作對檔案的複制
* @建立時間:
*/
public static void bufferedCopyFile(){
//建立fileReader/bufferedReader對象
FileReader fileReader = null;
BufferedReader bufferedReader = null;
建立fileWriter/bufferedWriter對象
FileWriter fileWriter = null;
BufferedWriter bufferedWriter = null;
try {
//執行個體化fileReader/bufferedReader對象
fileReader = new FileReader("src/com/Ckinghan/CollectionDemo/ParamsComparator.java");
bufferedReader = new BufferedReader(fileReader);
//執行個體化fileWriter/bufferedWriter對象
fileWriter = new FileWriter("BufferedFileCopy.java");
bufferedWriter = new BufferedWriter(fileWriter);
//定義接收讀取 的資料存儲對象
String string =null;
//每次讀取一行,如果讀取的資料不為Null,
while ((string = bufferedReader.readLine()) != null) {
//在檔案中寫入一行接收到的資料
bufferedWriter.write(string);
//換行,因為讀取的是一行,寫入的也是一行,但并沒有自動換行,換行須要手動
bufferedWriter.newLine();
}
//清空緩沖區,将資料儲存在檔案中
bufferedWriter.flush();
//檔案COPY成功,輸出提示語
System.out.println("使用bufferedReader/bufferedWriter複制檔案成功");
} catch (FileNotFoundException e) {
//找不到檔案異常輸出
e.printStackTrace();
}catch (IOException e) {
//IO操作異常輸出
e.printStackTrace();
}finally {
try {
//如果bufferedWriter被執行個體化,關閉bufferedWriter對象,會自動關閉fileWriter對象
if(bufferedWriter != null)
bufferedWriter.close();
//如果bufferedReader被執行個體化,關閉bufferedReader對象,會自動關閉fileReader對象
if(bufferedReader != null)
bufferedReader.close();
} catch (IOException e2) {
e2.printStackTrace();
}
}
}
}