文件拷贝
将给定的一个目录下文件全部复制到指定目录下
代码:
package copyfiles;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
public class CopyUserThread extends Thread{
//文件计数器
int count = 0;
@Override
public void run() {
File f = new File("C:\\Program Files\\feiq");
copyFileDirectory(f);
System.out.println("传输完毕!");
}
//递归判断:如果是目录就继续在目录下寻找文件
private void copyFileDirectory(File f) {
File[] files = f.listFiles();
for (File file : files) {
if(file.isDirectory()){
copyFileDirectory(file);
}else{
String name = file.getName();
File file2 = new File("f:\\",name);
try {
file2.createNewFile();
fileCopy(file2,file);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
//文件复制
private void fileCopy(File f,File f1) throws IOException {
System.out.println("正在拷贝第"+(++count)+"个文件...");
BufferedInputStream fis = new BufferedInputStream(new FileInputStream(f));
BufferedOutputStream fos = new BufferedOutputStream(new FileOutputStream(f1));
byte[] byt = new byte[1024*1024];
int len = 0;
try {
while((len = fis.read(byt)) != -1){
fos.write(byt,0,len);
}
} catch (IOException e) {
e.printStackTrace();
}finally{
if(fos != null){
fos.close();
}
if(fis != null){
fis.close();
}
}
}
public static void main(String[] args) {
CopyUserThread f =new CopyUserThread();
f.start();
}
}
小白一枚!