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