本工具类作用,传入你想要转码的文件,从当前文件的编码转为你想要转的任何类型编码。如UTF-8–>GBK,GBK–>UTF-8等等。
不影响程序的正常运行,只有中文才会转码。
思路:
①遍历source(源文件)文件,将其用oldCharset(旧编码)读取,用你想转的newCharset编码写入到C盘,生成新文件(过度文件)。
②遍历删除源文件(source),将C盘中的新文件(已经转码过度文件)以步骤①一样写回源文件目录。
③遍历删除过度文件
该工具我测试了很久,应该没有bug,如果有纰漏和问题,直接评论,我会回复的。
下面的注释很详细,认真看完,对你io流的学习一定很有帮助。
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.nio.CharBuffer;
import java.util.Objects;
/**
* 将整个工作空间或者任何文件转换为指定格式,
* 这里用到了的主要技术是 io流
* @author Keerloo
*
*/
public class TransferWorkSpace {
public static void copy(File source,File targetDir,String oldCharset, String newCharset) throws IOException {
if (source.isFile()) {
// 如果源文件标准文件,则直接进行文件拷贝
copyFile(source, targetDir,oldCharset,newCharset);
} else {
// 在目标目录下创建一个源目录同名的子目录
targetDir = new File(targetDir, source.getName()