修改文件后缀 java_java 复制指定后缀名文件并修改其后缀名

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.FilenameFilter;

import java.util.ArrayList;

import java.util.List;

/**

* 将c:\cn目录下的所有.java文件复制到c:\test目录下,并将原来文件的扩展名从.java改为.wl。

* @author wl

* @time 2014.10.05 02:10:23

*

*/

public class CopyFilesFromAToB {

public static void main(String[] args) throws Exception {

MyFilter myFilter=new MyFilter();

File f1=new File("C:\\cn");

File f2=new File("C:\\test");

copyFilesAndReName(f1,f2,myFilter);//将f1目录下以.java结尾的文件复制到目录f2下,并修改其扩展名

}

public static void copyFilesAndReName(File f1,File f2,FilenameFilter myFilter) throws Exception{

List list=new ArrayList();

if(!f1.exists()&&f1.isDirectory()){

throw new RuntimeException("目录不存在");

}

if(!f2.exists()&&f2.isDirectory()){

f2.mkdir();//如果f2不存在就创建一个新的

}

File[] files=f1.listFiles();//列出f1下所有文件

list=recarsive(files,myFilter,list);//遍历files下的所有文件,并将以.java结尾的文件添加到List中;

FileInputStream fis;

FileOutputStream fos;

String filename;

//遍历List中的文件,将其复制到f2,并修改扩展名

for(File file:list){

filename =file.getName().replace(".java", ".wl");

File newfile=new File(f2,filename);

fis=new FileInputStream(file);

fos=new FileOutputStream(newfile);

fileCopy(fis,fos);

fis.close();

fos.close();

}

}

//复制文件内容

private static void fileCopy(FileInputStream fis, FileOutputStream fos) throws Exception {

int len=0;

byte[] buf=new byte[1024];

if((len=fis.read(buf))!=-1){

fos.write(buf, 0, len);

}

}

//递归遍历目录,得到所有以.java结尾的文件的集合list

public static List recarsive(File[] files,FilenameFilter myFilter,List list){

for(File file:files){

if(file.isDirectory()){

recarsive(file.listFiles(),myFilter,list);

}else if(myFilter.accept(file, file.getName())){

list.add(file);

}

}

System.out.println("list.size()"+list.size());

return list;

}

}

//文件过滤器类,过滤所有以.java结尾的文件

class MyFilter implements FilenameFilter{

@Override

public boolean accept(File dir, String name) {

return name.endsWith(".java");

}

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值