首页 > 编程 > Java > 正文

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

2019-11-08 02:06:12
字体:
来源:转载
供稿:网友

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

源代码下载地址:http://www.zuidaima.com/share/1902677591215104.htm
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);			}		}	}}

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


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表