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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 朱德帅 中级黑马   /  2013-4-10 14:43  /  2008 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 朱德帅 于 2013-4-10 22:16 编辑

今天做了一个题,要求把一个目录下的所有.java文件修改为.class文件拷贝到指定目录。例如将F:/java下的所有.java文件找出来,并修改后缀名为.class后存放至一个指定目录。我的思路:1.先遍历了指定目录,将所有后缀为.java的文件遍历出来存到了一个List集合
                         2.然后遍历list集合,将里面所有文件的后准名改为.class。
                         3.再次遍历集合将里面的文件写入到指定目录
问题:当我修改文件的后缀名时,我发现用String类的.split(".")时不能分割。怎么办?求解。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

4 个回复

倒序浏览
本帖最后由 梁航斌 于 2013-4-10 15:45 编辑

       因为“.”是特殊字符啊,遇到特殊字符时都要转义的,在“.”加"\\"。
如"\\."等。
      其实你也可以用替换的方式啊,在String类里面有个replace

      你可以参考参考{:soso_e113:}

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
前几天刚有个哥们问了这个问题,只不过是把文件的后缀名改成.jar。我把源码给你,思路都是一样的
/*在D盘下的java文件夹中把扩展名为.java的文件复制
到名为jad的文件夹中,文并把扩展名为.java的文件改为.jad文件。

思路:
1.先判断文件是否为.java文件
2.如果是就复制到jad文件夹中
3.将复制过来的文件后缀名改为.jad

步骤:
1.使用listFiles列出java目录下所有文件
2.使用使用循环判断目录中的文件后缀名是否为.java(endsWith判断)
4.如果中了,把后缀名该为.jad文件(replace),在jad文件夹下建立同名文件,
3.复制文件
*/

import java.io.*;

class RemoveFile
{
        public static void main(String[] args) throws IOException
        {
                File f = new File("E:\\javase"); //改成D盘下的java文件夹即可
                BufferedReader br;
                BufferedWriter bw;
                File[] files = f.listFiles(); //获取Java文件夹下所有文件
                for (File file : files)
                {
                        if (file.getName().endsWith(".java")) //过滤“.java”文件
                        {
                                String child = file.getName().replace(".java",".jad"); //将后缀名改为".jad"
                                f = new File("D:\\jad",child); //目标目录
                                br = new BufferedReader(new FileReader(file));
                                bw = new BufferedWriter(new FileWriter(f));
                                String line = null;
                                while ((line = br.readLine()) != null)
                                {
                                        bw.write(line); //复制文件
                                        bw.newLine();
                                        bw.flush();
                                }

                                br.close();
                                bw.close();
                        }
                }
        }
}

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
赵晓东 发表于 2013-4-10 16:16
前几天刚有个哥们问了这个问题,只不过是把文件的后缀名改成.jar。我把源码给你,思路都是一样的
/*在D盘下 ...

如果文件的名字叫做a.java.java呢?那它不是把文件名都改了吗!
回复 使用道具 举报
正常人应该不会那样命名的,上面那个程序应该够用。不过即使这样命名了也有办法
int index = file.getName().lastIndexOf(".java"); //获取最右边.java的位置
String child = file.getName().substring(0,index)+".jad"; //截取后缀名.java前面的字符串+".jad"即可

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马