import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class CopyFiles {
private String from;//要复制的源文件夹
private String to;//要复制到的目标文件夹
//定义读取流字段
private FileInputStream fis;
private BufferedInputStream bis;
private DataInputStream dis;
//定义写入流字段
private FileOutputStream fos;
private BufferedOutputStream bos;
private DataOutputStream dos;
public static void main(String[] args) throws Exception {
CopyFiles cFiles = new CopyFiles();
cFiles.doing("F:\\down", "F:/mo");
}
//复制
private void doing(String fs, String ts) throws Exception{
//定位输入的两个字符串成文件。
File fromDirs = new File(fs);
if(!fromDirs.exists()) return;
File toDirs = new File(ts);
if(!toDirs.exists()) toDirs.mkdir();
//列出当前文件夹中所有的文件,循环。
File[] files = fromDirs.listFiles();
for(File f:files){
if(f.isFile()){
reader(f);//如果是文件,就创建读取流,然后在目标文件夹创建该名字的文件
File newFile = new File(toDirs, f.getName());
//创建写入流,然后开始读取源文件,写入到目标文件中
write(newFile);
int leap;
while ((leap = dis.read()) != -1) {
dos.write(leap);
}
closeAll();//关闭所有流
}
if(f.isDirectory()){//是文件夹就创建文件夹,递归创建
File newDir = new File(toDirs, f.getName());
doing(f.getAbsolutePath(), newDir.getAbsolutePath());
}
}
}
//写入流
private void write(File file) throws Exception {
fos = new FileOutputStream(file);
bos = new BufferedOutputStream(fos);
dos = new DataOutputStream(bos);
}
//读取流
private void reader(File file) throws Exception{
fis = new FileInputStream(file);
bis = new BufferedInputStream(fis);
dis = new DataInputStream(bis);
}
//关闭所有流
private void closeAll() throws Exception {
dis.close();
bis.close();
fis.close();
dos.flush();
bos.flush();
dos.close();
bos.close();
fos.close();
}
public String getFrom() {
return from;
}
public void setFrom(String from) {
this.from = from;
}
public String getTo() {
return to;
}
public void setTo(String to) {
this.to = to;
}
public CopyFiles(String from, String to) {
this.from = from;
this.to = to;
}
public CopyFiles() {
}
}
复制一个文件夹中所有文件到另一个文件夹
最新推荐文章于 2022-10-07 11:44:57 发布