zoukankan      html  css  js  c++  java
  • 面试题之——将文件夹下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);
            }
        }
    }
    
    


  • 相关阅读:
    【代码片段】HTML5嵌入媒体 (HTML5 Embedded Media)
    【代码片端】@Font-Face
    【代码片段】CSS3 渐变(CSS3 Gradients)
    【代码片段】CSS RESET,支持HTML5
    我的Cocos2d-x学习笔记(九)游戏帧循环(游戏主循环)
    我的Cocos2d-x学习笔记(八)利用CCSpriteBatchNode进行优化
    我的Cocos2d-x学习笔记(七)纹理缓存、帧缓存、精灵的创建、zOrder
    我的Cocos2d-x学习笔记(六)坐标体系与锚点
    我的Cocos2d-x学习笔记(五)CCLayer、CCLayerColor、CCLayerGradient、CCLayerMultiplex
    我的Cocos2d-x学习笔记(四)场景转换特效
  • 原文地址:https://www.cnblogs.com/riskyer/p/3327711.html
Copyright © 2011-2022 走看看