最代码官方的gravatar头像
最代码官方 2014-07-10 12:06:38

java读取文件并获得文件编码,转换为指定编码的工具类代码

package com.zuidaima.util;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Test {
	public static int fileCount = 0;
	public static String sourceFileRoot = "D:/workspace/test/src/com/zuidaima/"; // 将要转换文件所在的根目录
	public static String sourceCharset = "gbk"; // 源文件编码
	public static String targetCharset = "utf8"; // 目标文件编码

	public static void main(String[] args) throws IOException {
		File fileDir = new File(sourceFileRoot);
		convert(fileDir);
		System.out.println("Total Dealed : " + fileCount + "Files");
	}

	public static void convert(File file) throws IOException {
		// 如果是文件则进行编码转换,写入覆盖原文件
		if (file.isFile()) {
			// 只处理.java结尾的代码文件
			if (file.getPath().indexOf(".java") == -1) {
				return;
			}
			InputStreamReader isr = new InputStreamReader(new FileInputStream(
					file), sourceCharset);
			BufferedReader br = new BufferedReader(isr);
			StringBuffer sb = new StringBuffer();
			String line = null;
			while ((line = br.readLine()) != null) {
				// 注意写入换行符
				sb.append(line + "\n");
			}
			br.close();
			isr.close();

			File targetFile = new File(file.getPath() + "." + targetCharset);
			OutputStreamWriter osw = new OutputStreamWriter(
					new FileOutputStream(targetFile), targetCharset);
			BufferedWriter bw = new BufferedWriter(osw);
			// 以字符串的形式一次性写入
			bw.write(sb.toString());
			bw.close();
			osw.close();

			System.out.println("Deal:" + file.getPath());
			fileCount++;
		} else {
			for (File subFile : file.listFiles()) {
				convert(subFile);
			}
		}
	}

}

java读取文件并获得文件编码,转换为指定编码的工具类代码

该代码可以把某个工程的gbk编码java文件全部自动转换为utf-8编码,在工作中很实用。


打赏

最代码最近下载分享源代码列表最近下载
最代码最近浏览分享源代码列表最近浏览
tyz_Amy  LV16 2021年6月7日
2469095052  LV8 2021年2月2日
dongzhan  LV11 2020年12月7日
438265764  LV14 2020年9月3日
linjh123  LV1 2020年7月2日
wei112233  LV15 2020年4月20日
yinfengdu  LV1 2020年3月24日
zhushizhan  LV3 2019年12月16日
luohaipeng  LV23 2019年11月20日
lironggang  LV34 2019年7月17日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友