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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陈延真 中级黑马   /  2013-5-30 21:26  /  1191 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 陈延真 于 2013-5-31 22:16 编辑

import java.io.File;
import java.io.FilenameFilter;
//需求:编写一个程序,将d:\java目录下的所有.java文件的扩展名从.java改为.jad。
public class Test {
public static void main(String[] args)  {
  // 封装目录
  File file = new File("d:\\java");
  // 获取满足条件的String[]
  String[] strArray = file.list(new FilenameFilter() {
   @Override
   public boolean accept(File dir, String name) {
    return new File(dir, name).isFile() && name.endsWith(".java");
   }
  });
  
  //改名
  //获取目的地目录下的所有文件
  File[] fileArray = file.listFiles();
  //遍历文件
  for(File f: fileArray){
   
   String name = f.getName();
   File newName = new File(".jad");
   File newFile = new File(file2,newName);
   //重命名
   f.renameTo(newFile);
  }
}
}

评分

参与人数 1技术分 +1 收起 理由
刘胜寒 + 1

查看全部评分

6 个回复

倒序浏览
建议你去看看张孝祥老师的面试宝典。对你应该帮助很大
回复 使用道具 举报
把return new File(dir, name).isFile() && name.endsWith(".java");
直接写成return name.endsWith(".java");
回复 使用道具 举报
遍历文件里面错了String name = f.getName();获取了文件名以后,应该用String类的replace(char oldChar,char newChar)方法,把后缀名改过来。
代码应该是这样的,你试试。
             //遍历文件
                for(File f: fileArray){
                       
                        String name = f.getName();
                        String newName = name.replace(".java", ".jad");
                        File newFile = new File(file2,newName);
                        //重命名
                        f.renameTo(newFile);
                }

评分

参与人数 1技术分 +1 收起 理由
刘胜寒 + 1

查看全部评分

回复 使用道具 举报
LZ的这两句话让我凌乱了,file2从哪来的?第一句为什么要这样啊 ?替换不行吗?水平有限,LZ的思路我没看懂。。呵呵
   File newName = new File(".jad");
   File newFile = new File(file2,newName);
回复 使用道具 举报
首先:你上半部分代码应该和下半部分代码没有关系,你遍历出了所有.java文件确没有用,而是在下面的代码中重新遍历了d:\java目录下所有的文件包括不是以.java为后缀的文件。
其次:你写的这两句代码 File newName = new File(".jad");     File newFile = new File(file2,newName); File类是没有这个构造方法的,那个file2也是错的,编译是不会过的。
把你写的代码整理下可以这么写
  1. // 封装目录
  2.                 File file = new File("d:\\java");
  3.                 // 获取满足条件的File文件,这里可以直接封装成文件的
  4.                 File[] fileArray = file.listFiles(new FilenameFilter() {
  5.                         @Override
  6.                         public boolean accept(File dir, String name) {
  7.                                 return new File(dir, name).isFile() && name.endsWith(".java");
  8.                         }
  9.                 });
  10.                 // 遍历所有的.java文件
  11.                 for (File f : fileArray) {

  12.                         String name = f.getName();
  13.                         String newName = name.replace(".java", ".jad");
  14.                         // 这里把路径也要封装进去,不然文件就移动到当前的classpath下面了
  15.                         File newFile = new File(file, newName);
  16.                         System.out.println(newFile.getAbsolutePath());
  17.                         f.renameTo(newFile);
  18.                 }
复制代码
你可以参考一下。

评分

参与人数 1技术分 +1 收起 理由
殇_心。 + 1

查看全部评分

回复 使用道具 举报
如果问题已解决,请及时修改分类,否则继续提问,谢谢合作!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马