import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
/*
* IO的自定义工具类
*/
public class MyIOUtils {
//实现文件的复制,输入两个文件对象
public static void copyFile(File srcFile,File desFile) throws IOException {
if (!srcFile.isFile()) {
System.out.println("源文件有误");
return;
}
if (!desFile.exists()) {
desFile.createNewFile();
}
//使用高效流
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcFile));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(desFile));
//读取并写入
byte[] bytes = new byte[8192];
int i;
while((i=bis.read(bytes))!=-1){
bos.write(bytes, 0, i);
}
//关流
bis.close();
bos.close();
}
//文件的复制,输入两个文件地址对象
public static void copyFile(String srcString,String desString) throws IOException{
//直接调用重载的方法
File srcFile = new File(srcString);
File desFile = new File(desString);
copyFile(srcFile, desFile);
}
//文件夹的复制
public static void copyDir(File srcDir, File desDir) throws IOException {
if (!srcDir.isDirectory()) {
System.out.println("源文件夹有误");
return;
}
if (!desDir.isDirectory()) {
System.out.println("目标文件夹有误");
return;
}
//在目标文件夹中建立源文件夹目录
File newDesDir = new File(desDir,srcDir.getName());
newDesDir.mkdir();
//首先将源文件夹分成各个文件
File[] files = srcDir.listFiles();
for (File file : files) {
if (file.isFile()) {
File desFile = new File(newDesDir,file.getName());
copyFile(file, desFile);
}else {
if (file.isDirectory()) {
//递归调用
copyDir(file, newDesDir);
}
}
}
}
}
|
|