利用字节流和字符流操作分别完成文件的复制
利用字节流和字符流操作分别完成文件的复制
答案
import java.io.*;
public class FileCopy {
public static void main(String[] args) {
String src = "source.txt";
String dest1 = "copy1.txt";
String dest2 = "copy2.txt";
copyByByte(src, dest1);
copyByChar(src, dest2);
}
// 字节流复制文件
public static void copyByByte(String src, String dest) {
FileInputStream fis = null;
FileOutputStream fos = null;
try {
fis = new FileInputStream(src);
fos = new FileOutputStream(dest);
int b;
while ((b = fis.read()) != -1) {
fos.write(b);
}
System.out.println("字节流复制完成:" + dest);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (fis != null) fis.close();
if (fos != null) fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
// 字符流复制文件
public static void copyByChar(String src, String dest) {
FileReader fr = null;
FileWriter fw = null;
try {
fr = new FileReader(src);
fw = new FileWriter(dest);
int c;
while ((c = fr.read()) != -1) {
fw.write(c);
}
System.out.println("字符流复制完成:" + dest);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (fr != null) fr.close();
if (fw != null) fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}