码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2017-01-12 22:31:55      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:ted   turn   ace   复制   throw   重要   数据   lte   not   

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;
import java.io.IOException;

public class Day12 {
	/*
	 * 需求:复制指定目录下的指定文件,并修改后缀名。 指定的目录是:jad 指定的文件是:.java文件 指定的后缀名是:.jad
	 * 
	 * 数据源:e:\\java\\A.java 
	 * 目的地:e:\\jad\\A.jad
	 * 
	 * 分析:
	 *  A:封装目录
	 *  B:获取该目录下的java文件的File数组 
	 *  C:遍历该File数组,得到每一个File对象 
	 *  D:把该File进行复制
	 *  E:在目的地目录下改名
	 */
	public static void main(String[] args) throws IOException {

		File srcFolder = new File("e:\\java");
		File destFolder = new File("e:\\jad");
		if (!destFolder.exists()) {
			destFolder.mkdir();
		}
		//File的文件名称过滤器功能
		File[] fileArray = srcFolder.listFiles(new FilenameFilter() {

			@Override
			public boolean accept(File dir, String name) {
				// TODO Auto-generated method stub
				return new File(dir, name).isFile() && name.endsWith(".jpg");
			}
		});
		for (File file : fileArray) {
			String name = file.getName();  //得到e:\\java目录下的A.java文件名称
			File newFile = new File(destFolder, name);  //这里显示的为e:\\jad\\A.java 
			copyFile(file, newFile);
		}
		File[] destFileArray = destFolder.listFiles();
		for (File destFile : destFileArray) {
			String name = destFile.getName();   //得到e:\\jad目录下的A.java
			String newName = name.replace(".java", ".jad");    //得到e:\\jad目录下的A.jad
			File newFile = new File(destFolder, newName);    //这里显示的为e:\\jad\\A.jad 
			destFile.renameTo(newFile);
		}
	}

	private static void copyFile(File file, File newFile) throws IOException {
		// TODO Auto-generated method stub
		BufferedInputStream bis = new BufferedInputStream(new FileInputStream(
				file));
		BufferedOutputStream bos = new BufferedOutputStream(
				new FileOutputStream(newFile));
		byte[] bys = new byte[1024];
		int len = 0;
		while ((len = bis.read()) != -1) {
			bos.write(bys, 0, len);
		}
		bis.close();
		bos.close();
	}
}

  

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

标签:ted   turn   ace   复制   throw   重要   数据   lte   not   

原文地址:http://www.cnblogs.com/zengjiao/p/6279811.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!