EncodeChange Util


package zhch.illq.util;

import java.io.File;
import java.io.IOException;
import java.io.UnsupportedEncodingException;

import org.apache.commons.io.FileUtils;

/**
 * @author 
 * @version 1.0
 * @since 1.0
 */

public class EncodeChange {

	public void change(String srcDir) throws IOException {
		change(srcDir, "gbk", "utf-8", null);
	}

	public void change(String srcDir, String filetype) throws IOException {
		change(srcDir, "gbk", "utf-8", filetype);
	}

	public void change(String srcDir, String fromEncoding, String toEncoding) throws IOException {

		File src = new File(srcDir);
		change(src, fromEncoding, toEncoding, null);
	}

	public void change(String srcDir, String fromEncoding, String toEncoding, String filetype) throws IOException {

		File src = new File(srcDir);
		change(src, fromEncoding, toEncoding, filetype);
	}

	public void change(File src, String fromEncoding, String toEncoding, String filetype) throws IOException {
		if (src.isFile()) {
			changeFile(fromEncoding, toEncoding, filetype, src);
			return;
		}
		File[] files = src.listFiles();
		for (File file : files) {
			if (file.isFile()) {
				changeFile(fromEncoding, toEncoding, filetype, file);
			} else if (file.isDirectory()) {
				change(file, fromEncoding, toEncoding, filetype);
			}
		}
	}

	/**
	 * 
	 * @param fromEncoding
	 * @param toEncoding
	 * @param filetype
	 * @param file
	 * @throws IOException
	 */
	private void changeFile(String fromEncoding, String toEncoding, String filetype, File file) throws IOException {

		String filename = file.getName();
		String type = "";
		if (filename.indexOf('.') != -1) {
			type = filename.substring(filename.lastIndexOf('.') + 1);
		}
		if (filetype == null || filetype.equals(type)) {

			String content = FileUtils.readFileToString(file, fromEncoding);
			FileUtils.writeStringToFile(file, content, toEncoding);
		}

	}

	public void changeCode(String str, String codeFrom, String codeTo) throws UnsupportedEncodingException {
		System.out.println(new String(str.getBytes(codeFrom), codeTo));
	}

	/**
	 * 
	 * @param args
	 * @throws IOException
	 */
	public static void main(String[] args) throws IOException {
		EncodeChange ec = new EncodeChange();
		// ec.change("d:\\temp\\javac\\");
		ec.change("d:\\workspace\\AloneLogin", "java");
		System.out.println("o le=");
	}

}

你可能感兴趣的:(java,apache)