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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杜正冬 中级黑马   /  2012-11-18 16:47  /  1323 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public static void main(String[] args) throws Exception {
                File srcDir = new File("java");
                if (!(srcDir.exists() && srcDir.isDirectory()))
                        throw new Exception("目录不存在");
                File[] files = srcDir.listFiles(new FilenameFilter() {
                        public boolean accept(File dir, String name) {
                                return name.endsWith(".java");
                        }

                });

                System.out.println("共有" + files.length + "个java文件");
                File destDir = new File("jad");
                if (!destDir.exists())
                        destDir.mkdir();
                for (File f : files) {
                        FileInputStream fis = new FileInputStream(f);
                        String destFileName = f.getName().replaceAll("//.java$", ".jad");
                        FileOutputStream fos = new FileOutputStream(new File(destDir,
                                        destFileName));
                        copy(fis, fos);
                        fis.close();
                        fos.close();
                }
        }

        private static void copy(InputStream ips, OutputStream ops)
                        throws Exception {
                int len = 0;
                byte[] buf = new byte[1024];
                while ((len = ips.read(buf)) != -1) {
                        ops.write(buf, 0, len);
                }
        }

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 赞一个!

查看全部评分

8 个回复

倒序浏览
  1. import java.io.*;

  2. public class FileCopy
  3. {
  4.         public static void main(String[] args) throws Exception {
  5.                 File srcDir = new File("java");
  6.                 if (!(srcDir.exists() && srcDir.isDirectory()))
  7.                         throw new Exception("目录不存在");
  8.                 File[] files = srcDir.listFiles(new FilenameFilter() {
  9.                         public boolean accept(File dir, String name) {
  10.                                 return name.endsWith(".java");//这里需要检测该文件对象是不是目录,如果有一个名为java.java的目录那么你的代码就会有异常
  11.                         }
  12.                 });
  13.                        
  14.                         System.out.println("共有" + files.length + "个java文件");
  15.                         File destDir = new File("jad");
  16.                         if (!destDir.exists())
  17.                                 destDir.mkdir();
  18.                         for (File f : files) {
  19.                                 FileInputStream fis = new FileInputStream(f);
  20.                                 String destFileName = f.getName().replaceAll("//.java$", ".jad");
  21.                                 FileOutputStream fos = new FileOutputStream(new File(destDir,
  22.                                         destFileName));
  23.                                 copy(fis, fos);
  24.                                 fis.close();
  25.                                 fos.close();
  26.                                 }
  27.         }
  28.         private static void copy(InputStream ips, OutputStream ops)
  29.                 throws Exception {
  30.                 int len = 0;
  31.                 byte[] buf = new byte[1024];
  32.                 while ((len = ips.read(buf)) != -1) {
  33.                         ops.write(buf, 0, len);
  34.                 }
  35.         }

  36. }
复制代码
accept方法需要检测该文件对象是不是目录,如果有一个名为java.java的目录那么你的代码就会有异常

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 赞一个!

查看全部评分

回复 使用道具 举报
你的正则表达式怎么学的?我记不住啊!
回复 使用道具 举报
还是报错
回复 使用道具 举报
题目: 编写一个程序,将d:\java 目录下的所有.java 文件复制到d:\jad 目录下,
         并将原来文件的扩展名从.java 改为.jad。
回复 使用道具 举报
我的就不报错啊
回复 使用道具 举报
奚华 中级黑马 2012-11-18 23:59:33
7#
复制的很对啊
回复 使用道具 举报
奚华 中级黑马 2012-11-19 00:01:29
8#
你先复制过去,再rename就行了
回复 使用道具 举报
未解决  伤心中。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马