将input中的文件剪切到output里,代码如下:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class Jianqie {
public static void main(String[] args) {
Jianqie test1 = new Jianqie();
try {
File input=new File("input");
File output=new File("output");
test1.cutDir(input, output);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("剪切完毕!");
}
/*
* 目录的剪贴操作
*
* @param src 源文件夹
*
* @param dest目标文件夹
*/
public void cutDir(File src, File dest) throws IOException {
if (dest.isFile())
throw new RuntimeException(dest + "不是文件夾");
if (src.isFile()) {
File destFile = new File(dest, src.getName());
copyFile(src, destFile);
} else if (src.isDirectory()) {
File destFile = new File(dest, src.getName());
destFile.mkdirs();
File[] children = src.listFiles();
for (File tmp : children) {
cutDir(tmp, destFile);
}
}
src.delete();
}
/*
* 文件的拷贝操作
*/
public void copyFile(File srcFile, File destFile) throws IOException {
try (FileInputStream fis = new FileInputStream(srcFile);
FileOutputStream fos = new FileOutputStream(destFile);) {
byte[] buffer = new byte[1024];
int len = 0;
while ((len = fis.read(buffer)) > 0) {
fos.write(buffer, 0, len);
}
}
}
}