zoukankan      html  css  js  c++  java
  • Java基础知识强化之IO流笔记49:IO流练习之 复制指定目录下指定后缀名的文件并修改名称的案例

    1. 复制指定目录下指定后缀名的文件并修改名称的案例

        需求:复制指定目录下的指定文件,并修改后缀名。

      • 指定的文件是:.java文件。

        • 指定的后缀名是:.jad

        • 指定的目录是:jad

    数据源:e:\java\A.java

    目的地:e:\jad\A.jad

       分析:
          A封装目录
          B获取该目录下的java文件的File数组
          C遍历该File数组,得到每一个File对象
          D把该File进行复制
          E在目的地目录下改名

    2. 代码示例:

     1 package cn.itcast_04;
     2 
     3 import java.io.BufferedInputStream;
     4 import java.io.BufferedOutputStream;
     5 import java.io.File;
     6 import java.io.FileInputStream;
     7 import java.io.FileOutputStream;
     8 import java.io.FilenameFilter;
     9 import java.io.IOException;
    10 
    11 /*
    12  * 需求:复制指定目录下的指定文件,并修改后缀名。
    13  * 指定的文件是:.java文件。
    14  * 指定的后缀名是:.jad
    15  * 指定的目录是:jad
    16  * 
    17  * 数据源:e:\java\A.java
    18  * 目的地:e:\jad\A.jad
    19  * 
    20  * 分析:
    21  *         A:封装目录
    22  *         B:获取该目录下的java文件的File数组
    23  *         C:遍历该File数组,得到每一个File对象
    24  *         D:把该File进行复制
    25  *         E:在目的地目录下改名
    26  */
    27 public class CopyFolderDemo {
    28     public static void main(String[] args) throws IOException {
    29         // 封装目录
    30         File srcFolder = new File("e:\java");
    31         // 封装目的地
    32         File destFolder = new File("e:\jad");
    33         // 如果目的地目录不存在,就创建
    34         if (!destFolder.exists()) {
    35             destFolder.mkdir();
    36         }
    37 
    38         // 获取该目录下的java文件的File数组
    39         File[] fileArray = srcFolder.listFiles(new FilenameFilter() {
    40             @Override
    41             public boolean accept(File dir, String name) {
    42                 return new File(dir, name).isFile() && name.endsWith(".java");
    43             }
    44         });
    45 
    46         // 遍历该File数组,得到每一个File对象
    47         for (File file : fileArray) {
    48             // System.out.println(file);
    49             // 数据源:e:\java\DataTypeDemo.java
    50             // 目的地:e:\jad\DataTypeDemo.java
    51             String name = file.getName();
    52             File newFile = new File(destFolder, name);
    53             copyFile(file, newFile);
    54         }
    55 
    56         // 在目的地目录下改名
    57         File[] destFileArray = destFolder.listFiles();
    58         for (File destFile : destFileArray) {
    59             // System.out.println(destFile);
    60             // e:jadDataTypeDemo.java
    61             // e:\jad\DataTypeDemo.jad
    62             String name =destFile.getName(); //DataTypeDemo.java
    63             String newName = name.replace(".java", ".jad");//DataTypeDemo.jad
    64             
    65             File newFile = new File(destFolder,newName);
    66             destFile.renameTo(newFile);
    67         }
    68     }
    69 
    70     private static void copyFile(File file, File newFile) throws IOException {
    71         BufferedInputStream bis = new BufferedInputStream(new FileInputStream(
    72                 file));
    73         BufferedOutputStream bos = new BufferedOutputStream(
    74                 new FileOutputStream(newFile));
    75 
    76         byte[] bys = new byte[1024];
    77         int len = 0;
    78         while ((len = bis.read(bys)) != -1) {
    79             bos.write(bys, 0, len);
    80         }
    81 
    82         bos.close();
    83         bis.close();
    84     }
    85 }

    运行效果,如下:

     

  • 相关阅读:
    Error creating bean with name 'entityManagerFactory' defined in class path resource
    com.sun.org.apache.regexp.internal不存在
    [Kubernetes] Best Practices/Design Patterns for Kubernetes in Production
    [Tools] Kill the process running on port 8080
    [AWS] Lab: Docker and CodeCommit Part 1
    [AWS] Lab: Docker with CodeCommit & CodeBuild Part2
    [AWS] Lab: Launching an EKS Cluster
    [AWS] Lab: Configure and Work with CodeCommit from the CLI
    [DevOps] Environment Variables with Travis
    [DevOps] CI/CD Benefits
  • 原文地址:https://www.cnblogs.com/hebao0514/p/4870285.html
Copyright © 2011-2022 走看看