zoukankan      html  css  js  c++  java
  • IO流(9)复制指定文件夹下指定文件到目的文件夹,并改名

    import java.io.BufferedInputStream;
    import java.io.BufferedOutputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.FilenameFilter;
    import java.io.IOException;

    /*
    * 需求:复制指定目录下的指定文件,并修改后缀名。
    * 指定的文件是:.java文件。
    * 指定的后缀名是:.jad
    * 指定的目录是:jad
    *
    * 数据源:e:\java\A.java
    * 目的地:e:\jad\A.jad
    *
    * 分析:
    * A:封装目录
    * B:获取该目录下的java文件的File数组
    * C:遍历该File数组,得到每一个File对象
    * D:把该File进行复制
    * E:在目的地目录下改名
    */
    public class CopyFolderDemo {
      public static void main(String[] args) throws IOException {
        // 封装目录
        File srcFolder = new File("e:\java");
        // 封装目的地
        File destFolder = new File("e:\jad");
        // 如果目的地目录不存在,就创建
        if (!destFolder.exists()) {
          destFolder.mkdir();
        }

        // 获取该目录下的java文件的File数组
        File[] fileArray = srcFolder.listFiles(new FilenameFilter() {
          @Override
          public boolean accept(File dir, String name) {
            return new File(dir, name).isFile() && name.endsWith(".java");
          }
        });

        // 遍历该File数组,得到每一个File对象
        for (File file : fileArray) {
          // System.out.println(file);
          // 数据源:e:javaDataTypeDemo.java
          // 目的地:e:\jadDataTypeDemo.java
          String name = file.getName();
          File newFile = new File(destFolder, name);
          copyFile(file, newFile);
        }

        // 在目的地目录下改名
        File[] destFileArray = destFolder.listFiles();
        for (File destFile : destFileArray) {
          // System.out.println(destFile);
          // e:jadDataTypeDemo.java
          // e:\jad\DataTypeDemo.jad
          String name =destFile.getName(); //DataTypeDemo.java
          String newName = name.replace(".java", ".jad");//DataTypeDemo.jad

          File newFile = new File(destFolder,newName);
          destFile.renameTo(newFile);
        }
      }

      private static void copyFile(File file, File newFile) throws IOException {
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(newFile));

        byte[] bys = new byte[1024];
        int len = 0;
        while ((len = bis.read(bys)) != -1) {
          bos.write(bys, 0, len);
        }

        bos.close();
        bis.close();
      }
    }

  • 相关阅读:
    [总结] XPO (eXpress Persistent Objects) 学习总结一
    [总结]工作中常用的正则表达式,有了它事半功倍!
    用JS实现页面滚动位置保持的方法
    [总结]TLF论坛全功略,下载指南!
    Javascript里使用Dom操作Xml
    。NET构架相关资源
    [收藏]关于用Asp.Net论坛发帖软件的实现
    匹配Unicode字符的正则表达式(中文)
    [转贴]如何实现TreeView的双击事件?
    [转贴]客户端不装adobe reader,打开pdf文件的插件
  • 原文地址:https://www.cnblogs.com/qinjf/p/8270622.html
Copyright © 2011-2022 走看看