黑马程序员技术交流社区
标题:
结果怎么就出不来呢?
[打印本页]
作者:
陈延真
时间:
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也是错的,编译是不会过的。
把你写的代码整理下可以这么写
// 封装目录
File file = new File("d:\\java");
// 获取满足条件的File文件,这里可以直接封装成文件的
File[] fileArray = file.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return new File(dir, name).isFile() && name.endsWith(".java");
}
});
// 遍历所有的.java文件
for (File f : fileArray) {
String name = f.getName();
String newName = name.replace(".java", ".jad");
// 这里把路径也要封装进去,不然文件就移动到当前的classpath下面了
File newFile = new File(file, newName);
System.out.println(newFile.getAbsolutePath());
f.renameTo(newFile);
}
复制代码
你可以参考一下。
作者:
殇_心。
时间:
2013-5-31 10:13
如果问题已解决,请及时修改分类,否则继续提问,谢谢合作!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2