文件复制

1、编写一个程序,将d:\java目录下的所有.java文件复制到d:\jad目录下,并将原来文件的扩展名从.java改为.jad。
package com.icss.test;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FilenameFilter;
import java.io.InputStream;
import java.io.OutputStream;

public class Jad2Java {
       
	public static void main(String[] args) throws Exception {
		File srcDir = new File("D:\\jaa");
		if (!(srcDir.exists() && srcDir.isDirectory()))
			throw new Exception("目录不存在");
//listFiles方法接受一个FilenameFilter对象,这个FilenameFilter对象就是过虑
//的策略对象,不同的人提供不同的FileFilter实现,即提供了不同的过滤策略。
		File[] files = srcDir.listFiles(new FilenameFilter() {

			public boolean accept(File dir, String name) {
				return name.endsWith(".java");
			}

		});

		System.out.println(files.length);
		File destDir = new File("D:\\jad");
		if (!destDir.exists())
			destDir.mkdir();
		for (File f : files) {
			FileInputStream fis = new FileInputStream(f);
//			使用正则表达式修改文件名
			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];
		while ((len = ips.read(buf)) != -1) {  //读出ips的流 放入buf中 返回总长度len
			System.out.println(len);
			ops.write(buf, 0, len);
		}

	}
}




你可能感兴趣的:(java,正则表达式,F#)