面试题之——将文件夹下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);

        }

    }

}


 

 

以上是 面试题之——将文件夹下java文件写入到新的文件夹,并修改扩展名 的全部内容, 来源链接: utcz.com/z/395046.html

回到顶部