zoukankan      html  css  js  c++  java
  • java遍历文件

    习题:

    import java.io.File;
    import java.io.BufferedInputStream;
    import java.io.BufferedOutputStream;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    class CopyAllFiles 
    {
            public static void main(String[] args) 
            {
                    //源目录
                    File srcFolder=new File("D:\KwDownload");
                    //目的地目录
                    File destFloder=new File("E:\music");                
                    long startTime=System.currentTimeMillis();
                    //将源目录下的所有文件及文件夹复制到指定目录
                    boolean flag=copyAllFiles(srcFolder,destFloder);
                    long endTime=System.currentTimeMillis();
                    long resultTime=endTime-startTime;                
                    if(flag)
                    {
                            System.out.println("复制成功!共用时"+resultTime+"毫秒("+(resultTime/1000)+"秒)");
                    }
            }
            
            /**
             * 文件及文件夹复制工具
             * @param src 源目录
             * @param dest 目的地目录
             * @return flag 返回true表示复制成功,否则复制失败
             */
            public static boolean copyAllFiles(File src,File dest)
            {
                    boolean flag=false;
                    if(!dest.exists())
                    {
                            dest.mkdir();
                    }
                    File[] fileArr=src.listFiles(); //将源目录下的对象封装进File数组
                    for(File f:fileArr)          //遍历File中的对象
                    {
                            if(f.isDirectory())  //判断File对象是否是目录
                            {
                                    File newFolder=new File(dest,f.getName());
                                    newFolder.mkdir(); //创建目的地目录创建遍历到的文件夹
                                    copyAllFiles(f,newFolder);  //如果遍历到的是目录,递归循环操作
                                    //System.out.println(f.getName()+"---"+newFolder.getName());
                            }
                            else
                            {
                                    //调用字节流复制方法
                                    //CopyBinaryFile(f.getAbsolutePath(),dest.getAbsolutePath().concat("\").concat(f.getName()));
                                    CopyBinaryFile(f.getAbsolutePath(),new File(dest,f.getName()).getAbsolutePath());
                                    //System.out.println(f.getAbsolutePath());                                
                                    //System.out.println(new File(dest,f.getName()).getAbsolutePath());
                            }
                            if(f!=null)
                            {
                                    flag=true;
                            }
                    }                
                    return flag;
            }
            /**
             * 字节流文件复制工具
             * @param src 数据源
             * @param dest 目的地
             * @return flag 如果为true,表示复制成功,否则,复制失败。
             */
            
            public static boolean CopyBinaryFile(String src,String dest)
            {
                    boolean flag=false;                
                    BufferedInputStream bis=null;                
                    BufferedOutputStream bos=null;
                    try
                    {
                            bis=new BufferedInputStream(new FileInputStream(src));
                            bos=new BufferedOutputStream(new FileOutputStream(dest));
                            byte[] bys=new byte[1024];
                            int len=0;
                            while((len=bis.read(bys))!=-1)
                            {
                                    //写入数据
                                    bos.write(bys,0,len);
                            }
                    }
                    catch (IOException ioe)
                    {
                            ioe.printStackTrace();
                    }
                    finally
                    {
                            if(bos!=null)
                            {
                                    try
                                    {
                                            //释放资源
                                            bos.close();
                                    }
                                    catch (IOException ioe)
                                    {
                                            ioe.printStackTrace();
                                    }
                            }
                            if(bis!=null)
                            {
                                    try
                                    {
                                            //释放资源
                                            bis.close();
                                            flag=true;
                                    }
                                    catch (IOException ioe)
                                    {
                                            ioe.printStackTrace();
                                    }
                            }                        
                    }                
                    return flag;
            }
    }


  • 相关阅读:
    jQueryMobile(二)
    (六)JavaScript之[Regular Expression]与[错误(try, catch, throw)]
    18-metaclass,是潘多拉魔盒还是阿拉丁神灯?
    17-强大的装饰器
    15-Python对象的比较、拷贝
    13-搭建积木:Python模块化
    12-面向对象(下):如何实现一个搜索引擎?
    11-面向对象(上):从生活中的类比说起
    10-简约不简单的匿名函数
    09-不可或缺的自定义函数
  • 原文地址:https://www.cnblogs.com/dengshiwei/p/4258496.html
Copyright © 2011-2022 走看看