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

Native2asciiUtil 文本文件转UNICODE编码文件(支持UTF-8,Unicode,UTF-16BE,ANSI|ASCII,GBK)

时间:2014-08-09 21:36:29      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:des   blog   java   os   io   文件   for   2014   

package com.ctl.util;

import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

/**
 * 
 * @author Administrator
 * @Description \u5C06\u6587\u672C\u6587\u4EF6\u8F6C\u6362\u4E3AUNICODE\u7F16\u7801
 */
public class Native2asciiUtil {
	/**
	 * @description \u5C06\u6587\u672C\u6587\u4EF6\u8F6C\u6362\u6210UNICODE\u7F16\u7801\u652F\u6301UTF-8,Unicode,UTF-16BE,ANSI|ASCII,GBK
	 * @param srcFile
	 *            \u6E90\u6587\u4EF6\u8DEF\u5F84 \u4F8B\u5982C:/test/test.txt
	 * @param targetFilePath
	 *            \u76EE\u6807\u8DEF\u5F84 \u8F6C\u8FC7\u540E\u7684\u76EE\u6807\u6587\u4EF6H:/zz/test.java
	 * @return
	 * @throws Exception
	 */
	public static boolean toUnicode(String srcFile, String targetFilePath)
			throws Exception {
		File file = new File(targetFilePath);
		String path = file.getParent();
		File file2 = new File(path);
		file2.mkdirs();
		String srcFileEncoding = FileUtil.getEncodeString(srcFile);
		StringBuffer buf = new StringBuffer("native2ascii -encoding");
		buf.append(" ").append(srcFileEncoding).append(" ").append(srcFile)
				.append(" ").append(targetFilePath);
		try {
			Runtime run = Runtime.getRuntime();
			run.exec(buf.toString());
			return true;
		} catch (IOException e) {
			return false;
		}
	}

	/**
	 * @description 
	 *              \u5C06\u6307\u5B9A\u6587\u4EF6\u5939\u7684\u6587\u672C\u6587\u4EF6\u8F6C\u6362\u6210unicode\u7F16\u7801\u9ED8\u8BA4\u5305\u542B\u5B50\u6587\u4EF6\u5939\u652F\u6301UTF-8,Unicode,UTF-16BE,ANSI|
	 *              ASCII,GBK
	 * @param srcPath
	 *            \u539F\u76EE\u5F55
	 * @param targetPath
	 *            \u76EE\u6807\u76EE\u5F55
	 * @throws Exception
	 */
	public static void toUnicode2(String srcPath, String targetPath)
			throws Exception {
		toUnicode2(srcPath, targetPath, true);
	}

	/**
	 * @description 
	 *              \u5C06\u6307\u5B9A\u6587\u4EF6\u5939\u7684\u6587\u672C\u6587\u4EF6\u8F6C\u6362\u6210unicode\u7F16\u7801\u9ED8\u8BA4\u5305\u542B\u5B50\u6587\u4EF6\u5939\u652F\u6301UTF-8,Unicode,UTF-16BE,ANSI|
	 *              ASCII,GBK
	 * @param srcPath
	 *            \u539F\u76EE\u5F55
	 * @param targetPath
	 *            \u76EE\u6807\u76EE\u5F55
	 * @param childDir
	 *            \u662F\u5426\u5305\u542B\u5B50\u6587\u4EF6\u5939
	 * @throws Exception
	 */
	public static void toUnicode2(String srcPath, String targetPath,
			boolean childDir) throws Exception {
		// map\u4E2D\u5B58\u653E\u6240\u6709\u7684\u6587\u4EF6\u540D \u548C\u6587\u4EF6\u8DEF\u5F84

		final Runtime run = Runtime.getRuntime();
		Map<String, String> map = new HashMap<String, String>();
		map = FileUtil.getAllFileNameAndFilePathMap(srcPath, childDir, map);
		Set<String> key = map.keySet();
		Iterator<String> it = key.iterator();

		File file = new File(targetPath);
		// \u521B\u5EFA\u76EE\u6807\u8DEF\u5F84
		file.mkdirs();
		while (it.hasNext()) {
			String fileName = it.next();
			String filePath = map.get(fileName);
			String fileNameAndPathSrc = filePath + File.separator + fileName;
			// filePath.substring(2) \u7528\u4E8E\u53D6\u51FA\u76D8\u7B26\u4F8B\u5982H:%test\u53BB\u9664\u540E\u4E3A test
			String targetDir = targetPath + File.separator
					+ filePath.substring(3);
			String targetFile = targetDir + File.separator + fileName;
			file = new File(targetDir);
			if (!file.exists()) {// \u521B\u5EFA\u5728\u6E90\u6587\u4EF6\u76F8\u5BF9\u5E94\u7684\u8DEF\u5F84
				file.mkdirs();
			}
			// file = new File(targetFile);
			// if (file.isFile()) {// \u5982\u679C\u5B58\u5728\u6587\u4EF6\u5219\u66FF\u6362
			// file.delete();
			// }
			String srcFileEncoding = FileUtil
					.getEncodeString(fileNameAndPathSrc);
			final StringBuffer buf = new StringBuffer("native2ascii -encoding");
			buf.append(" ").append(srcFileEncoding);
			buf.append(" ").append(fileNameAndPathSrc).append(" ")
					.append(targetFile);
			// String
			// type=FileTypeMap.getDefaultFileTypeMap().getContentType(targetFile);
			// System.out.println(type+"  "+buf.toString());

			// \u6267\u884C\u8F6C\u6362
			Process p = null;
			try {
				p = run.exec(buf.toString());
				p.waitFor();// \u6CA1\u6709\u6B21\u53E5\u8BDD\u4F1A\u9020\u6210\u963B\u585E
			} catch (Exception e) {
				throw new Exception(e);
			}
			System.out.println(srcFileEncoding + "***** " + p.exitValue()
					+ "--" + buf.toString());
		}
	}

	/**
	 * @param args
	 * @throws Exception
	 */
	public static void main(String[] args) throws Exception {
		//String srcPath = "H:/txt";
		String srcPath  ="E:/JavaWeb/Tarena";
		String targetPath = "H:/";
		//toUnicode("H:/t.txt", "H:/t2est.txt");
		toUnicode2(srcPath, targetPath, true);
		System.err.println("over");
	}
}

Native2asciiUtil 文本文件转UNICODE编码文件(支持UTF-8,Unicode,UTF-16BE,ANSI|ASCII,GBK),布布扣,bubuko.com

Native2asciiUtil 文本文件转UNICODE编码文件(支持UTF-8,Unicode,UTF-16BE,ANSI|ASCII,GBK)

标签:des   blog   java   os   io   文件   for   2014   

原文地址:http://blog.csdn.net/ctllin/article/details/38459133

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