黑马程序员技术交流社区

标题: 结果怎么就出不来呢? [打印本页]

作者: 陈延真    时间: 2013-5-30 21:26
标题: 结果怎么就出不来呢?
本帖最后由 陈延真 于 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);
  }
}
}


作者: Super_Class    时间: 2013-5-30 22:05
建议你去看看张孝祥老师的面试宝典。对你应该帮助很大
作者: SOAR    时间: 2013-5-30 22:16
把return new File(dir, name).isFile() && name.endsWith(".java");
直接写成return name.endsWith(".java");

作者: kaka小明    时间: 2013-5-30 22:49
LZ的这两句话让我凌乱了,file2从哪来的?第一句为什么要这样啊 ?替换不行吗?水平有限,LZ的思路我没看懂。。呵呵
   File newName = new File(".jad");
   File newFile = new File(file2,newName);
作者: 娄田田    时间: 2013-5-30 23:07
首先:你上半部分代码应该和下半部分代码没有关系,你遍历出了所有.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.                 }
复制代码
你可以参考一下。
作者: 殇_心。    时间: 2013-5-31 10:13
如果问题已解决,请及时修改分类,否则继续提问,谢谢合作!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2