• 面试题之——将文件夹下java文件写入到新的文件夹,并修改扩展名


    题目:将d:/code/java文件夹下的所有.java文件复制到d:/code/java/jad文件夹下并且将原来的文件的扩展名.java改为.jad

    源代码:

    package com.zyh.interview;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.FilenameFilter;
    import java.io.InputStream;
    import java.io.OutputStream;
    
    /**
     * 将d:/code/java文件夹下的所有.java文件复制到d:/code/java/jad文件夹下
     * 并且将原来的文件的扩展名.java改为.jad
     * @author zyh
     *
     */
    public class Java2Jad_q112 {
        public static void main(String[] args) throws Exception {
            /*第一步:获取文件目录*/
            File dir = new File("d:/code/java");
            if(!(dir.exists()&&dir.isDirectory())) {
                throw new Exception("目录" + dir.getAbsolutePath() + "不存在");
            }
            /*第二步:列出该目录下所有的.java文件*/
            File[] files = dir.listFiles(new FilenameFilter() {
                //获取.java文件时使用listFiles(FilenameFilter filter)方法,创建一个过滤文件名的Filter
                @Override
                public boolean accept(File dir, String name) {
                    if(name != null && "".equals("")) {
                        //检测文件名是否是以.java结尾,是返回true,否则继续检测下一个文件
                        if(name.toLowerCase().endsWith(".java")) {
                            return true;
                        }
                    }
                    return false;
                }
            });
            /*第三步:获取目标文件夹,如果不存在就建立该文件夹*/
            File destDir = new File("d:/code/java/jad");
            if(!destDir.exists()) {
                destDir.mkdir();
            }
            for(File file : files) {
                System.out.println(file.getName());
                FileInputStream fis = new FileInputStream(file);
                /*第四步:将得到的文件名称的扩展名改为.jad*/
                String destFileName = file.getName().replaceAll("\.java$", "\.jad");
                FileOutputStream fos = new FileOutputStream(new File(destDir, destFileName));
                /*第五步:将文件重新写入目标文件夹*/
                copy(fis, fos);
                fis.close();
                fos.close();
            }
        }
        
        public static void copy(InputStream in, OutputStream out) throws Exception {
            byte[] buf = new byte[1024];
            int len = 0;
            /*读取文件内容并写入文件字节流中*/
            while((len = in.read(buf))!=-1) {
                out.write(buf, 0, len);
            }
        }
    }
    
    


  • 相关阅读:
    android 摇一摇功能的实现
    几种排序算法
    程序员面试宝典笔记一二
    在命令行运行java代码
    【小记整理】mybatis配置多个扫描路径写法
    idea+mvc项目转换小记
    SpringCloud学习笔记
    Shell学习笔记2》转载自runnoob
    idea初见问题整理_错误: -source 1.5 中不支持 diamond 运算符
    汇编入门四-寄存器
  • 原文地址:https://www.cnblogs.com/riskyer/p/3327711.html
Copyright © 2020-2023  润新知