Java IO实现文件(及文件夹)的复制 原创代码【精】
单个文件复制
FileInputStream input=new FileInputStream("C://360//fay.jpg");
FileOutputStream output=new FileOutputStream("D://Test//fay2.jpg");
//读取文件内容
byte[] bytes=new byte[6];
int sum=0;
while (input.read(bytes)==bytes.length){
output.write(bytes);
sum++;
}
output.write(bytes);
System.out.println(sum);
input.close();
output.close();
整个文件夹(包含文件夹中的所有内容)复制
import java.io.*;
public class Homework2 {
public static void main(String[] args) throws IOException {
String path="D:\\Copy"; \\复制到哪个路径(path)中
File file=new File("D:\\Test");
copyAll(file,path);
}
//复制文件
public static void copy(File f,String path) throws IOException {
FileInputStream in = new FileInputStream(f);
FileOutputStream out = new FileOutputStream(path+f.getName());
byte[] bytes=new byte[512];
while ((in.read(bytes))!=-1){
out.write(bytes,0,bytes.length);
}
}
public static void copyAll(File file,String path) throws IOException {
File outFile=new File(path);
outFile.mkdirs();//创建文件夹,如果文件夹已存在则创建失败返回false
File[] filelists=file.listFiles();
for (File f:filelists) {
if(f.isFile()){//如果是文件就复制文件
copy(f,path+File.separator);
}else {//如果是文件夹,就创建文件夹,并复制文件,这就是copyAll()的功能,所以用递归
copyAll(f,outFile.getPath()+File.separator+f.getName());
}
}
}
}
Victory!