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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

请问加粗部分可以转换成功吗?这段代码错在哪了?
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("复制完毕!!");
                }
               
        }
}


8 个回复

倒序浏览
心悟 来自手机 高级黑马 2016-6-10 22:41:59
沙发

回帖奖励 +1

用长度减3很不谨慎啊,要是后缀超过3怎么办
回复 使用道具 举报
心悟 发表于 2016-6-10 22:41
用长度减3很不谨慎啊,要是后缀超过3怎么办

前边的方法已经把.txt文件过滤后复制到新文件夹了
回复 使用道具 举报

回帖奖励 +1

String f1=f.getName().substring(f.getName().length()-3, f.getName().length())+".java";  其实这一段可以改成
String f1=f.getName(). replace("txt","java");
回复 使用道具 举报

回帖奖励 +1

用replace不错
回复 使用道具 举报
  1. <span style="line-height: 2.2em;"> if (file.getName().endsWith(".txt")) {</span>
复制代码



这样也可以,
回复 使用道具 举报
加粗部门只是实现了文件名字的改变,创建一个空的文件并没有完成对文件的重新命名  应该使用renameTo(file)的方法实现)
回复 使用道具 举报
加粗部门只是实现了文件名字的改变,创建一个空的文件并没有完成对文件的重新命名  应该使用renameTo(file)的方法实现)
回复 使用道具 举报
见著 中级黑马 2016-6-11 22:27:48
9#
lifeiwangyue 发表于 2016-6-10 23:48
加粗部门只是实现了文件名字的改变,创建一个空的文件并没有完成对文件的重新命名  应该使用renameTo(file) ...

我试一下啊,谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马