package IO_03;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class CopyFileDemo {
public static void main(String[] args) throws IOException {
String srcFile = "a.txt";
String destFile = "d.txt";
//5种方式实现字符文件拷贝,推荐copyFileMethod4
// copyFileMethod0(srcFile, destFile);
// copyFileMethod1(srcFile, destFile);
// copyFileMethod2(srcFile, destFile);
// copyFileMethod3(srcFile, destFile);
copyFileMethod4(srcFile, destFile);
}
private static void copyFileMethod4(String srcFile, String destFile) throws IOException{
BufferedReader br = new BufferedReader(new FileReader(srcFile));
BufferedWriter bw = new BufferedWriter(new FileWriter(destFile));
String line = null;
while((line = br.readLine())!=null){
bw.write(line);
bw.newLine();
bw.flush();
}
br.close();
bw.close();
}
private static void copyFileMethod3(String srcFile, String destFile) throws IOException{
BufferedReader br = new BufferedReader(new FileReader(srcFile));
BufferedWriter bw = new BufferedWriter(new FileWriter(destFile));
char[] buf = new char[1024];
int len = 0;
while((len = br.read(buf))!=-1){
bw.write(buf, 0, len);
bw.flush();
}
br.close();
bw.close();
}
private static void copyFileMethod2(String srcFile, String destFile) throws IOException{
BufferedReader br = new BufferedReader(new FileReader(srcFile));
BufferedWriter bw = new BufferedWriter(new FileWriter(destFile));
int buf = 0;
while((buf = br.read()) != -1){
bw.write(buf);
bw.flush();
}
br.close();
bw.close();
}
private static void copyFileMethod1(String srcFile, String destFile) throws IOException{
FileReader fr = new FileReader(srcFile);
FileWriter fw = new FileWriter(destFile);
char[] buf = new char[1024];
int len = 0;
while((len = fr.read(buf))!=-1){
fw.write(buf,0,len);
fw.flush();
}
fr.close();
fw.close();
}
private static void copyFileMethod0(String srcFile, String destFile) throws IOException{
FileReader fr = new FileReader(srcFile);
FileWriter fw = new FileWriter(destFile);
int buf = 0;
while((buf = fr.read())!=-1){
fw.write(buf);
fw.flush();
}
fr.close();
fw.close();
}
}