首页 > 其他分享 >文件编码转换(GBK转UTF-8)

文件编码转换(GBK转UTF-8)

时间:2023-02-18 09:55:21浏览次数:40  
标签:编码 file1 UTF String file2 GBK fileIn File new

public class FileReEncoding {

    String file1 = "E:\\java-fx";

    String code1 = "GBK";

    String file2 = "E:\\java-fx-2";

    String code2 = "UTF-8";

    public static void main(String[] args) throws IOException {

        FileReEncoding code = new FileReEncoding();
        code.processFile(new File(code.file1));
    }

    public void processFile(File fileIn) throws IOException {
        if (fileIn != null) {
            if (fileIn.isDirectory()) {
                String newDir = fileIn.getCanonicalPath().replace(file1, file2);
                File dir = new File(newDir);
                if (!dir.exists()) {
                    dir.mkdir();
                }
                for (File childFile : fileIn.listFiles()) {
                    processFile(childFile);
                }
            } else if (fileIn.getName().endsWith(".java")) {
                String filePath = fileIn.getCanonicalPath();
                BufferedReader br = new BufferedReader(new InputStreamReader(Files.newInputStream(fileIn.toPath()), code1));
                String newFile = filePath.replace(file1, file2);
                BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(Files.newOutputStream(Paths.get(newFile)), code2));
                String line;
                while ((line = br.readLine()) != null) {
                    bw.write(line + "\r\n");
                }
                br.close();
                bw.close();
            } else {
                FileInputStream fis = new FileInputStream(fileIn);
                FileOutputStream fos = new FileOutputStream(fileIn.getCanonicalPath().replace(file1, file2));
                byte[] buffer = new byte[1024];
                int len;
                while ((len = fis.read(buffer)) != -1) {
                    fos.write(buffer, 0, len);
                }
                fis.close();
                fos.close();
            }
        }
    }
}

标签:编码,file1,UTF,String,file2,GBK,fileIn,File,new
From: https://www.cnblogs.com/yantuyouyuxian/p/17132015.html

相关文章

  • Python3默认字符编码的问题
    输出报错UnicodeEncodeError:'ascii'codeccan'tencodecharactersinposition0-1:ordinalnotinrange(128)>>>importsys>>>sys.stdout.encoding'ANSI_X3.4-1......
  • Chrome扩展开发实例 - 编码解码
    code/manifest.json{"manifest_version":3,"name":"CodeTool","description":"encodeanddecodestring","version":"1.0","action":{"defa......
  • 标准ASCII编码表
    ASCII(AmericanStandardCodeforInformationInterchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代美式英语,并等同于国际标准ISO/IEC646......
  • BASE64编码
    Base64就是一种用64个Ascii字符来表示任意二进制数据的方法。主要用于将不可打印的字符转换成可打印字符,或者简单的说将二进制数据编码成Ascii字符。Base64是网络上最常用......
  • python百分号编码、解码
    在做接口自动化时,接口需要传入中文,并且是经过编码之后的中文例如需要将https://www.百度.com转换成如下,才能执行成功,那要怎么转换呢?https://www.%E7%99%BE%E5%BA%......
  • 深度理解变分自编码器(VAE) | 从入门到精通
    前言本文介绍了深度理解变分自编码器(VAE)的系列发展及相应的局限性。 本文转载自CVHub作者丨派派星 欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结......
  • Python爬虫'utf-8' codec can't decode byte 0xxx in position 1: invalid start byte
    Python抓取数据时,如果header添加了accept_encoding='gzip,deflate,br'无论如何转码都会出现 'utf-8'codeccan'tdecodebyte0xxxinposition1:invalidstar......
  • 转义、编码和加密
    转义、编码和加密是开发中很常见也很基础的概念。对于初学开发的开发者,可能有时会无法准确的区分着几个词。我们将通过这篇文章来了解一下“转义、编码和加密”这几个词的......
  • UTF-8编码
    介绍UTF-8编码UTF-8是一种针对Unicode的可变长度字符编码。针对Unicode:UTF-8是Unicode的实现方式之一。相当于Unicode规定了字符对应的代码值,这个代码值需要......
  • UTF-8编码
    介绍UTF-8编码UTF-8是一种针对Unicode的可变长度字符编码。针对Unicode:UTF-8是Unicode的实现方式之一。相当于Unicode规定了字符对应的代码值,这个代码值需要转......