IO流实现多级目录及文件的复制
题目要求
将D盘里的某个文件夹(要求:里有多级目录和多个文件), 复制到 E盘下。
提示
(递归,输入输出流,File类API-创建文件夹,构造方法-父路径/子路径)
代码实现
public class Copyfils {
public static void main(String[] args) throws IOException {
File souce=new File("D:/新建文件夹");//1.找到想复制的源文件(夹)
File togeter=new File("E:/");//2.在E盘设立锚点
recursioncopy(souce, togeter);
}
public static void recursioncopy(File souce,File togeter) throws IOException{
File newfile=new File(togeter,souce.getName());
//如果是文件而不是目录,输入输出
if(!souce.isDirectory()){
InputStream in=new FileInputStream(souce);
OutputStream out =new FileOutputStream(newfile);
byte[] bs=new byte[1024];//用字节数组传输
int len =-1;// len用于保存实际读取的字节数
while ((len=in.read(bs))!=-1) {
out.write(bs, 0, len);
}
out.close();//记得关闭流 而且是栈(后来的先关);
in.close();
}else{
newfile.mkdirs();//建文件夹
File[] files= souce.listFiles();
for (File file : files) {
recursioncopy(file, newfile );
}
}
}
}
最关键的是这个File类的构造方法
它使得代码可以递归
File newfile=new File(togeter,souce.getName());
总结
这世间没有一件事是容易的,编程之路亦是如此,先不管有没有天分,希望自己只管去做,剩下的交给命运吧!
还有,七夕节快乐!ψ(⃔ ๑⃙⃘ ‘ω’ ๑⃙⃘ )⃕↝♡︎ʾʾ
@小爪爪