黑马程序员技术交流社区

标题: 怎么把一个目录下的.txt文件转换为.java文件 [打印本页]

作者: 见著    时间: 2016-6-10 22:38
标题: 怎么把一个目录下的.txt文件转换为.java文件
请问加粗部分可以转换成功吗?这段代码错在哪了?
public class Demo02 {
        public static void main(String[] args) throws IOException {
                //1.构造初始目录
                File root = new File("D:\\daima\\homework");
                //建立复制的目录,复制文件
                File dir=new File("D:\\copy\\");
                //获取目录下的所有文件,并进行复制
                copyListFile(root);
                //转换为.java文件
                File[] fileArray = dir.listFiles();
                for(File f:fileArray){
                        String f1=f.getName().substring(f.getName().length()-3, f.getName().length())+".java";
                        File file = new File(f1);
                        file.createNewFile();
                }
               
               
        }

        private static void copyListFile(File root) throws IOException {
                File[] fileArray = root.listFiles();
                ArrayList<File> list = new ArrayList<>();
                if(fileArray != null){
                        for(File f:fileArray){
                                if(f.isFile() && f.getName().endsWith(".txt")){
                                        InputStream in = new FileInputStream(f);
                                        OutputStream out = new FileOutputStream("D:\\copy\\"+f.getName());
                                        byte[] byteArray = new byte[1024];
                                        int length = 0;
                                        while((length=in.read(byteArray)) != -1){
                                                out.write(byteArray, 0, length);
                                        }
                                        out.close();
                                        in.close();
                                       
                                }else if(f.isDirectory()){
                                        copyListFile(f);
                                }
                        }
                        System.out.println("复制完毕!!");
                }
               
        }
}



作者: 心悟    时间: 2016-6-10 22:41
用长度减3很不谨慎啊,要是后缀超过3怎么办
作者: 见著    时间: 2016-6-10 22:51
心悟 发表于 2016-6-10 22:41
用长度减3很不谨慎啊,要是后缀超过3怎么办

前边的方法已经把.txt文件过滤后复制到新文件夹了
作者: 大龄男青年    时间: 2016-6-10 22:54
String f1=f.getName().substring(f.getName().length()-3, f.getName().length())+".java";  其实这一段可以改成
String f1=f.getName(). replace("txt","java");
作者: 云袭    时间: 2016-6-10 23:10
用replace不错
作者: 心悟    时间: 2016-6-10 23:25
  1. <span style="line-height: 2.2em;"> if (file.getName().endsWith(".txt")) {</span>
复制代码



这样也可以,

作者: lifeiwangyue    时间: 2016-6-10 23:46
加粗部门只是实现了文件名字的改变,创建一个空的文件并没有完成对文件的重新命名  应该使用renameTo(file)的方法实现)
作者: lifeiwangyue    时间: 2016-6-10 23:48
加粗部门只是实现了文件名字的改变,创建一个空的文件并没有完成对文件的重新命名  应该使用renameTo(file)的方法实现)
作者: 见著    时间: 2016-6-11 22:27
lifeiwangyue 发表于 2016-6-10 23:48
加粗部门只是实现了文件名字的改变,创建一个空的文件并没有完成对文件的重新命名  应该使用renameTo(file) ...

我试一下啊,谢谢





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