Java使用IO流拷贝文件或拷贝目录
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class CopyDict {
public static void main(String[] args) {
File file1 = new File("E:/我的目录");
File file2 = new File("C:/",file1.getName());
long startTs = System.currentTimeMillis();
if (file1.isDirectory()) {
copyDcit(file1, file2);
}else{
copyFile(file1, file2);
}
long endTs = System.currentTimeMillis();
System.out.println("---------花费时间:"+(endTs-startTs)+"ms---------");
}
public static void copyFile(File srcFile,File destFile){
InputStream in = null;
OutputStream out = null;
try {
in = new BufferedInputStream(new FileInputStream(srcFile));
out = new BufferedOutputStream(new FileOutputStream(destFile));
System.out.println("---当前正在拷贝"+srcFile.getName()+"---");
int i = in.read();
while (i!=-1) {
out.write(i);
i = in.read();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally{
try {
in.close();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void copyDcit(File srcFile,File destFile){
destFile.mkdirs();
File[] files = srcFile.listFiles();
for (File file : files) {
if (file.isFile()) {
copyFile(file, new File(destFile, file.getName()));
}else{
copyDcit(file, new File(destFile, file.getName()));
}
}
}
}