• 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;
            }
    }


  • 相关阅读:
    stm32 复位后 引起引脚的变化,输出电平引起的问题
    利用jink的驱动软件j-flash 合并两个hex的方法,bootloader+app
    利用jink调试程序,时间不准的解决办法
    为什么你有10年经验,但成不了专家?
    第二章 信息的表示和处理
    Python人名独特性统计

    Python基本统计值计算
    VScode如何编译多个.C文件
    Python连续质数计算
  • 原文地址:https://www.cnblogs.com/dengshiwei/p/4258496.html
Copyright © 2020-2023  润新知