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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xuxu5112 中级黑马   /  2015-9-22 23:27  /  211 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. package com.xuchang.test;

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

  6. public class Test2 {

  7.         /**
  8.          * 题目2:
  9.         编写一个程序,将D:\Java目录下的所有java文件复制到D:\jad目录下,
  10.         并将原来文件的扩展名从.java改为.jad
  11.         需求:
  12.                 先复制,后改名。
  13.                 1.创建字节输入流对象关联 D:\Java
  14.                 2.创建字节输出流对象关联D:\jad
  15.                 3.调用copy()方法
  16.          * @throws IOException
  17.          */
  18.         public static void main(String[] args) throws IOException {
  19.                 //封装源文件和目标文件
  20.                 File src = new  File("D:\\Java");
  21.                 File dest = new File("D:\\jad");
  22.                 //调用copy()方法
  23.                 copy(src,dest);
  24.                 System.out.println("复制成功");
  25.                
  26.         }
  27.        
  28.         /*定义copy()方法将源文件夹下所有的以.java结尾的文件复制到目标文件夹下并改名
  29.          * A.返回值类型void
  30.          * B.参数列表 File src,File dest
  31.          *         3.调用listFiles()方法获得Java文件夹下所有文件对象的数组
  32.                 4.遍历该数组 并判断 如果是文件 则判断是否以.java结尾 若以.java结尾则先赋值到D:\jad中再改名
  33.                 若是文件夹则递归
  34.          * */
  35.         public static void copy(File src,File dest) throws IOException {
  36.                 //3.调用listFiles()方法获得Java文件夹下所有文件对象的数组
  37.                 File[] files = src.listFiles();
  38.                 //4.遍历该数组 并判断 如果是文件 则判断是否以.java结尾 若以.java结尾则先复制到D:\jad中再改名
  39.                 //若是文件夹则递归
  40.                 for(File file : files) {
  41.                         if(file.isFile() &&file.getName().endsWith(".java")) {
  42.                                 //1.创建字节输入流对象关联 D:\Java
  43.                                 FileInputStream fis = new FileInputStream(file);
  44.                                 //2.创建字节输出流对象关联D:\jad\文件名
  45.                                 File newFile = new File(dest,file.getName());
  46.                                 FileOutputStream fos = new FileOutputStream(newFile);
  47.                                 //定义临时变量len
  48.                                 int len;
  49.                                 //不停的读写 知道read()返回-1
  50.                                 while((len = fis.read()) != -1) {
  51.                                         fos.write(len);
  52.                                 }
  53.                                 fis.close();//关流释放资源
  54.                                 fos.close();
  55.                                
  56.                                 //改名调用renameTo(File file)方法
  57.                                 newFile.renameTo(new File(dest,newFile.getName().replace(".java", ".jad")));
  58.                                 //这里要注意 新的文件路径要带上dest
  59.                                 //不知道为啥改名不成功
  60.                                 //如果是文件夹则递归
  61.                         }else  if(file.isDirectory()){
  62.                                 copy(file,dest);
  63.                         }
  64.                 }
  65.         }

  66. }
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马