题目描述:程序实现将srcDir目录下的所有“.java”结尾的文件复制到desDir目录下,并将后缀名改为“.txt”
解题描述:其基本思想就是读srcDir目录下的文件,写到desDir目录下面;同时在读前对文件进行过滤,只读“.java”结尾的文件,写之前将文件目录名的后缀改为“.txt”
public class CopyFile {
private static void copy(InputStream ips, OutputStream ops) throws IOException{
int len = 0;
byte[] buf = new byte[1024];
while((len = ips.read(buf)) != -1)
ops.write(buf, 0, len);
}
public static void main(String[] args) throws Exception {
File srcDir = new File("srcDir");
File desDir = new File("desDir");
if(!(srcDir.exists() && srcDir.isDirectory()))
throw new Exception("目录不存在");
File[] files = srcDir.listFiles(
new FilenameFilter(){
public boolean accept(File dir, String name){
return name.endsWith(".java");
}
});
System.out.println(files.length);
if(!desDir.exists()) desDir.mkdir();
for(File f:files){
FileInputStream fis = new FileInputStream(f);
String desFilename = f.getName().replaceAll("\\.java$", ".txt");
FileOutputStream fos = new FileOutputStream(new File(desDir, desFilename));
copy(fis, fos);
fis.close();
fos.close();
}
}
}