好记性不如赖笔头……
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();
}
}
}
}