使用字节缓冲流将文件复制到另一个目录下
package com.test3;
import java.io.*;
public class test1 {
public static void main(String[] args) throws IOException {
File srcFolder = new File("C:\\Users\\herol\\Desktop\\testfile");
String srcFolderName = srcFolder.getName();
File desFolder = new File("MyClass", srcFolderName);
if (!desFolder.exists()) {
desFolder.mkdir();
}
File[] listFile = srcFolder.listFiles();
for (File srcFile : listFile) {
String srcFileName = srcFile.getName();
File desFile = new File(desFolder, srcFileName);
copyFolder(srcFile, desFile);
}
}
private static void copyFolder(File srcFile, File desFile) throws IOException {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcFile));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(desFile));
byte[] bys = new byte[1024];
int len;
while ((len = bis.read(bys)) != -1) {
bos.write(bys, 0, len);
}
bis.close();
bos.close();
}
}
复制包含文件夹的文件夹
package com.test3;
import java.io.*;
public class test1 {
public static void main(String[] args) throws IOException {
File srcFolder = new File("C:\\Users\\herol\\Desktop\\testfile");
File desFolder = new File("MyClass\\");
copyFolder(srcFolder, desFolder);
}
private static void copyFolder(File srcFolder, File desFolder) throws IOException {
if (srcFolder.isDirectory()) {
String srcFileName = srcFolder.getName();
File newFolder = new File(desFolder, srcFileName);
if (!newFolder.exists()) {
newFolder.mkdir();
}
File[] listFile = srcFolder.listFiles();
assert listFile != null;
for (File srcFile : listFile) {
copyFolder(srcFile, newFolder);
}
} else {
File newFile = new File(desFolder, srcFolder.getName());
copyFile(srcFolder, newFile);
}
}
private static void copyFile(File srcFile, File desFile) throws IOException {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcFile));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(desFile));
byte[] bys = new byte[1024];
int len;
while ((len = bis.read(bys)) != -1) {
bos.write(bys, 0, len);
}
bis.close();
bos.close();
}
}