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