题目:将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); } } }