//一次复制一个字节,异常处理,手动关闭流
public static void copyFile1(String srcFilename, String destFilename){
FileInputStream fileInputStream = null;
FileOutputStream fileOutputStream = null;
try {
fileInputStream = new FileInputStream(srcFilename);
fileOutputStream = new FileOutputStream(destFilename);
int cc = fileInputStream.read();
//如果cc不是-1,把cc保存到目标文件中
while (cc != -1){
fileOutputStream.write(cc);
cc = fileInputStream.read();
}
} catch (IOException e){
e.printStackTrace();
} finally {
if (fileInputStream != null){
try {
fileInputStream.close();
} catch (IOException e){
e.printStackTrace();
}
}
if (fileOutputStream != null){
try {
fileOutputStream.close();
} catch (IOException e){
e.printStackTrace();
}
}
}
}
//一次复制一个字节数组,异常处理,自动关闭流
public static void copyFile2(String srcFilename, String destFilename){
try {
FileInputStream fileInputStream = new FileInputStream(srcFilename);
//文件使用GBK编码,当前环境使用UTF-8编码,把字符转为GBK再读取
InputStreamReader is = new InputStreamReader(fileInputStream,"GBK");
FileOutputStream fileOutputStream = new FileOutputStream(destFilename,true); //true是将文件内容添加进来,不是覆盖
//文件使用GBK编码,当前环境使用UTF-8编码,把字符转为GBK再保存
OutputStreamWriter os = new OutputStreamWriter(fileOutputStream, "GBK");
byte[] bytes = new byte[1024];
int len = fileInputStream.read(bytes);
while (len != -1){
fileOutputStream.write(bytes,0, len);
len = fileInputStream.read(bytes);
}
}catch (Exception e){
e.printStackTrace();
}
}
//文本文件复制,一次复制一个字符,异常处理,自动关闭流
public static void copyFile3(String srcFilename, String destFilename){
try {
FileReader fileReader = new FileReader(srcFilename);
FileWriter fileWriter = new FileWriter(destFilename);
int cc = fileReader.read();
while (cc != -1){
fileWriter.write(cc);
cc = fileReader.read();
}
} catch (Exception e){
e.printStackTrace();
}
}
//文本文件复制,一次复制一个字符数组,异常处理,手动关闭流
public static void copyFile4(String srcFilename, String destFilename){
FileReader fileReader = null;
FileWriter fileWriter = null;
try {
fileReader = new FileReader(srcFilename);
fileWriter = new FileWriter(destFilename);
char[] contents = new char[1024];
int len = fileReader.read(contents);
while (len != -1){
fileWriter.write(contents);
len = fileReader.read(contents);
}
} catch (IOException e){
e.printStackTrace();
} finally {
if(fileReader != null){
try {
fileReader.close();
} catch (IOException e){
e.printStackTrace();
}
}
if (fileWriter != null){
try {
fileWriter.close();
} catch (IOException e){
e.printStackTrace();
}
}
}
}