文件复制
import java.io.*;
/**
* 文件复制
*/
public class FileCopy {
public static boolean copyFile(String src, String dst) {
return copyFile(new File(src), new File(dst));
}
public static boolean copyFile(File src, File dst) {
boolean result = false;
if (!src.isFile()) {
System.err.println("只能拷贝文件");
return result;
}
if (dst.isDirectory() || dst.isFile()) {
System.err.println("目标文件/文件夹已经存在!");
return result;
}
InputStream in = null;
OutputStream out = null;
try {
in = new FileInputStream(src);
out = new FileOutputStream(dst);
byte[] b = new byte[1024];
int len = 0;
while (-1 != (len = in.read(b))) {
out.write(b, 0, len);
}
out.flush();
} catch (FileNotFoundException e) {
System.err.println("文件未找到!");
} catch (IOException e) {
System.err.println("文件读写失败!");
} finally {
try {
if (null != in) {
in.close();
}
if (null != out) {
out.close();
}
result = true;
} catch (IOException e) {
System.err.println("文件关闭失败!");
}
}
return result;
}
}
调用方法
FileCopy.copyFile(src, dst);
文件夹复制
文件夹复制复用了文件复制的相关功能
/**
* 文件夹复制:
* 1.文件夹创建
* 2.文件复制
*/
public class DirCopy {
public static void copyDir(String src, String dst) {
copyDir(new File(src), new File(dst));
}
public static void copyDir(File src, File dst) {
if (src.isDirectory()) {
dst = new File(dst.getPath(), src.getName());
} else if (src.isFile()) {
dst.mkdirs();
dst = new File(dst.getPath(), src.getName());
} else {
System.err.println("源文件不存在!");
return;
}
doCopy(src, dst);
}
public static void doCopy(File src, File dst) {
if (src.isFile()) {
FileCopy.copyFile(src, dst);
} else if (src.isDirectory()) {
dst.mkdirs();
File[] files = src.listFiles();
if (null != files) {
for (File file : files) {
doCopy(file, new File(dst, file.getName()));
}
}
}
}
}
调用方法
DirCopy.copyDir(src,dst);