A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 天涯追梦 中级黑马   /  2014-4-25 14:33  /  657 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 天涯追梦 于 2014-4-27 10:39 编辑

下面代码复制一个文件会成功,但是如果复制文件夹却不会成功,但也不提示错误,这是为什么呢?
  1. package cn.itcast.copy;

  2. import java.io.FileInputStream;
  3. import java.io.FileOutputStream;
  4. import java.io.IOException;

  5. public class CopyTextByBufTest {

  6.         /**
  7.          * @param args
  8.          */
  9.         public static void main(String[] args) {

  10.                 copyTextByBuf();
  11.         }

  12.         public static void copyTextByBuf() {
  13.                
  14.                 FileInputStream fis = null;
  15.                 FileOutputStream fos = null;
  16.                 try{
  17.                         
  18.                         fis = new FileInputStream("e:\\a.txt");
  19.                         
  20.                         fos = new FileOutputStream("e:\\a.abc");
  21.                         
  22.                         //创建缓冲区。
  23.                         byte[] buf = new byte[1024];
  24.                         
  25.                         //定义记录个数的变量。
  26.                         int len = 0;
  27.                         
  28.                         //循环读写。
  29.                         while((len=fis.read(buf))!=-1){
  30.                                 
  31.                                 fos.write(buf,0,len);
  32.                         }
  33.                 }catch(IOException e){
  34.                         //异常日志。
  35.                 }finally{
  36.                         if(fos!=null){
  37.                                 try {
  38.                                         fos.close();
  39.                                 } catch (IOException e) {
  40.                                         //异常日志。
  41.                                         e.printStackTrace();
  42.                                 }
  43.                         }
  44.                         if(fis!=null){
  45.                                 try {
  46.                                         fis.close();
  47.                                 } catch (IOException e) {
  48.                                         //异常日志。
  49.                                         e.printStackTrace();
  50.                                 }
  51.                         }
  52.                 }
  53.                
  54.         }

  55. }
复制代码




评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

1 个回复

倒序浏览
因为只会复制一个空的文件夹 文件夹本身也是一个文件 所以就不会出错
复制文件夹代码:
  1. /*
  2. 复制文件方法
  3. */
  4. public static void copyFile(File dest,File src)throws IOException{
  5. InputStream ips = new FileInputStream(src);
  6. OutputStream ops = new FileOutputStream(dest);
  7. byte[] buf =new byte[1024];
  8. int len = 0;
  9. while((len = ips.read(buf))!=-1){
  10. ops.write(buf, 0, len);
  11. }
  12. ips.close();
  13. ops.close();
  14. }
  15. /*
  16. 复制目录下的文件。
  17. */
  18. public static void copyDir(File dest,File src)throws IOException{
  19. dest.mkdirs();
  20. File []dirAndFile = src.listFiles();
  21. for(File dirOrFile : dirAndFile){
  22. if(dirOrFile.isFile()){
  23. copyFile(new File(dest.getAbsolutePath()+"\\"+dirOrFile.getName()),
  24. new File(dirOrFile.getAbsolutePath()));
  25. }
  26. else if(dirOrFile.isDirectory()){
  27. copyDir(new File(dest.getAbsolutePath()+"\\"+dirOrFile.getName()),
  28. new File(dirOrFile.getAbsolutePath()));
  29. }
  30. }
  31. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马