注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

浩瀚星云

上善若水 厚德载物<学习版>

 
 
 

日志

 
 

通过IO流复制文件夹以及文件  

2012-11-23 12:52:43|  分类: JAVA程序设计 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

       创建类CopyFile ,在该类中创建copy()方法,该方法接受文件数组和目标文件夹两个参数,如果目标文件夹不存在,则调用mkdir()方法创建文件夹,然后在循环中将文件数组中的每个文件对象写到目标文件夹中。

package CopyFile;
import java.io.*;
public class CopyFile { //创建类CopyFile用于复制文件夹中的文件
       public static void copy(File[] f1,File file ) {
                     if(!file.exists())  //如果文件夹不存在
                                 file.mkdir();  //新建文件夹
                     for(int i=0;i<f1.length;i++){
                                 if(f1[i].isFile()){  //判断f1[i]是否是文件类型
                                     try{
                                           FileInputStream fis = new FileInputStream(f1[i]);  //创建文件输出流对象fis
                                                   //创建文件输出流对象out
                                           FileOutputStream out = new FileOutputStream(new File(file.getPath()+file.separator+f1[i].getName()));
                                           int count = fis.available(); //求数据项的数目
                                           byte[] data = new byte[count];
                                           if((fis.read(data))!=-1){ //判断是否读到了fis的末尾
                                                       out.write(data);   //复制文件内容,向输出流对象out中写数据 
                                            }
                                           out.close(); //关闭输出流对象out
                                           fis.close(); //关闭输入流对象fis
                                     }catch(Exception e){ //抛出异常
                                             e.printStackTrace();
                               }
                   }
                   if(f1[i].isDirectory()){    //函数isDirectory()是用来判断是否是文件夹类型的,如果是文件夹类型则完成下列操作
                                                   File des = new File(file.getPath()+File.separator+f1[i].getName()); //创建File类对象des用来
                                                  //存储目标文件夹的路径 separator 是分割符,此处是调用File类的分隔符。
                                                  des.mkdir(); //在目标文件夹中创建相同的文件夹
                                                  copy(f1[i].listFiles(),des); //递归调用的方法本身
                   }
              }  
          }
        public static void main(String[ ] args){
                          File sourFile = null;
                          File desFile = null;
                          String sourFolder = "D:/JavaTest/hello"; //可以修改源文件夹路径
                          String desFolder = "D:/JavaTest/copy";  //可以修改的目标文件夹路径
                          sourFile = new File(sourFolder);
                                if(!sourFile.isDirectory()||!sourFile.exists()){ //判断(源文件夹)和(源文件)是否存在
                                             System.out.println("源文件夹不存在!!!");
                                 }
                         desFile = new File(desFolder);
                         desFile.mkdir(); //创建目标文件夹
                         copy(sourFile.listFiles(),desFile);  //调用copy方法,将源文件复制到目标文件夹中
                         System.out.println("文件夹复制成功!!!"); //输出提示信息
                      }
}


通过IO流复制文件夹以及文件 - brain - 百年孤独
 
通过IO流复制文件夹以及文件 - brain - 百年孤独
 
通过IO流复制文件夹以及文件 - brain - 百年孤独
  评论这张
 
阅读(2563)| 评论(1)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017