1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > java实现文件夹的复制和剪切(包括子文件和子文件夹)

java实现文件夹的复制和剪切(包括子文件和子文件夹)

时间:2018-09-12 19:27:05

相关推荐

java实现文件夹的复制和剪切(包括子文件和子文件夹)

java实现文件夹的复制和剪切

思路分析代码展示

思路分析

上一篇文章已经介绍了java实现文件夹的复制,这篇文章为上一篇文章的补充,补充了文件夹的剪切,大家可以点击这里来了解上一篇文章(Java实现文件夹的复制)

代码展示

package com.java.study;import java.util.*;import java.io.*;public class Test implements Serializable{private String src;private String target;public Test(String src, String target) {this.src = src;this.target = target;}public String getSrc() {return src;}public void setSrc(String src) {this.src = src;}public String getTarget() {return target;}public void setTarget(String target) {this.target = target;}//复制文件,后续大家可以考虑缓冲问题,减少io次数,从而提高效率static void copyfile(String oldfile,String newfile) throws IOException {File oldf=new File(oldfile);FileOutputStream fop=new FileOutputStream(new File(newfile));FileInputStream fip=new FileInputStream(oldf);int count=fip.available();byte[] bytes=new byte[count];int input=-1;while((input=fip.read(bytes))!=-1){fop.write(bytes);}fop.flush();fop.close();fip.close();}//复制文件夹static void copydir(String oldpath,String newpath) throws IOException {File f1=new File(oldpath);File[] files=f1.listFiles();for(File ff:files){if(!ff.isDirectory()){//如果是文件,直接调用上面文件复制方法进行复制String newtarget=newpath+File.separator+ff.getName();copyfile(ff.getAbsolutePath(),newtarget);}else{//如果是文件夹,运用递归进行文件夹的复制String newtarget=newpath+File.separator+ff.getName();File newdir=new File(newtarget);newdir.mkdir();copydir(oldpath+File.separator+ff.getName(),newpath+File.separator+ff.getName());}}}//文件夹的剪切,先进行判断,如果时文件,直接删除,如果时文件夹,递归向下调用//因为File中的delete方法只能删除一个普通文件或者一个空的文件夹,所以需要先进行判断static void deletedir(String src){File srcfile=new File(src);File[] srcfiles=srcfile.listFiles();for(File f:srcfiles){if(f.isFile()){//判断为文件,直接调用delete方法删除f.delete();}else{//判断为文件夹,继续递归对该文件夹内的文件进行判断删除deletedir(f.getAbsolutePath());}}srcfile.delete();}public static void main(String[] args) throws IOException {copydir("f:\\java1","f:\\target");deletedir("f:\\java1");}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。