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<File> list=new ArrayList<File>();

		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<File> recarsive(File[] files,FilenameFilter myFilter,List<File> 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");
	}
}

时间: 2024-08-01 19:11:40

java 复制指定后缀名文件并修改其后缀名的相关文章

java使用指定的国际化文件

java代码: import java.util.Locale; import org.junit.Test; /** * 使用指定的国际化文件 */ public class Demo { @Test public void testName1() throws Exception { // 指定国际化为中国中文 Locale locale = new Locale("zh", "CN"); /* * getBundle的第一个参数(baseName): * |-

xcopy复制指定日期的文件

直接例子: xcopy c:\abc\*.*  d:\oafile /D:04-24-17  /e/s 将C:\abc目录下的所有修改日期在2017年4月24日后的文件复制到d:\oafile中.

复制指定需求的文件或目录到指定目录

题目:Linux显示/etc下以非字母开头,后面跟了一个字母以及其他任意长度字符的文件或目录 答: ls -a /etc/ | grep -E ^[^[:alpha:]][[:alpha:]]* 题目:复制以p或者P开头,以非数字结尾的文件或目录到/tmp/mytest1 答: #创建文件夹 mkdir /tmp/mytest1 #拷贝文件 cp -r /etc/[pP]*[^[:digit:]] /tmp/mytest1 也可以写成如下格式 mkdir /tmp/mytest1; cp -r

Java 把指定路径的文件读入内存并用字节数组保存工具方法

/** * * @param path 文件路径 * @return 文件转成字节数组 */ public static byte[] getByteArrayFrom(String path){ byte[] result=null; ByteArrayOutputStream outputStream=new ByteArrayOutputStream(); //创建文件 File file=new File(path); FileInputStream fileInputStream=nu

批处理:查找指定条件的文件复制到指定的目录中

@echo off echo                         查找并复制指定条件的文件到指定的目录 echo -------------------------------------------------------------------------------- echo 请输入要搜索的目录,必须使用绝对路径 set /p mulu= echo 请输入查找条件,多个条件请用英文 , 隔开 set /p tiaojian= echo 请输入复制到的目标,必须使用绝对路径 s

复制指定目录下的指定文件,并修改后缀名 很重要,也很难!!!

package cn.idcast2; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FilenameFilter; im

java批量修改指定文件夹下所有后缀名的文件为另外后缀名的代码

原文:java批量修改指定文件夹下所有后缀名的文件为另外后缀名的代码 源代码下载地址:http://www.zuidaima.com/share/1550463660264448.htm 今天有个需求,想把某个文件夹下所有后缀名为jsp的更改为ftl,本来想用bat实现对bat的高级语法也不太了解,后来发现还需要递归遍历所有的子文件夹,所以用java实现了一个功能一样的代码,有需要的牛人可以下载修改为自己想要的. 这样可以兼容windows和linux. package com.zuidaima

java使用POI实现excel文件的读取,兼容后缀名xls和xlsx

需要用的jar包如下: 如果是maven管理的项目,添加依赖如下: <!-- https://mvnrepository.com/artifact/org.apache.poi/poi --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.14</version> </depen

环境变量,属性文件,文件基础操作,目录基础操作,遍历指定后缀名文件

环境变量和属性 环境变量相关: 1.得到某个/所有环境变量的值 2.设置环境变量的值 3.列出全部系统属性名 import java.util.Enumeration; import java.util.Map; import java.util.Map.Entry; import java.util.Properties; public class Environment { public static void main(String[] args) { // TODO Auto-gener