/**
* 编写一个程序,将 d:\java目录下的所有.java 文件复制到d:\jad目录下,并将原来文件的扩展名从.java 改为.jad。
*
* :listFiles方法接受一个 FileFilter对象,这个 FileFilter 对象就是过虑的策略对象,不同的人提供不同的 FileFilter 实现,即提供了不同的过滤策略。
*
*/
package test;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.FilenameFilter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class Test{
public static void main(String [] args) throws Exception{
File srcDir = new File("java");//目录名
if(!(srcDir.exists()&&srcDir.isDirectory())){
throw new Exception("目录不存在。");
}
//目录下的*.java
File[] files = srcDir.listFiles(
new FilenameFilter(){//名字过滤器
public boolean accept(File dir,String name){
return name.endsWith(".java");
}
});
System.out.println(files.length);//*.java的数目
File destDir = new File("jad");
if(!destDir.exists()) destDir.mkdir();//创建文件夹jad
for(File f:files){
FileInputStream fis = new FileInputStream(f);//输入字节流
//*.java改为*.jad-----------正则表达式中.需要'\.',而\需要写为\\。$是正则表达式结束符
String destFileName = f.getName().replaceAll("\\.java$",".jad");
//输出字节流
FileOutputStream fos = new FileOutputStream(new File(destDir,destFileName));
copy(fis,fos);
fis.close();
fos.close();
}
}
//字节流拷贝
private static void copy(InputStream ips, OutputStream ops) throws Exception{
int len = 0;
byte[] buf = new byte[1024];//每次从输入流取出的最大字节数1024
while((len = ips.read(buf))!=-1){
ops.write(buf,0,len);
}
}
}
编写一个程序,将 d:\java目录下的所有.java 文件复制到d:\jad目录下,并将原来文件的扩展名从.java 改为.jad。
最新推荐文章于 2021-02-26 04:00:36 发布