GBK文件转UTF8文件

本文介绍了一种使用Java实现的文件编码转换方法,可以将GBK编码的文件转换为UTF8编码。该方法通过创建输入输出流并指定编码方式来完成转换过程。

在编程的世界中,文件转换是经常见的,本文介绍了如何把GBK编码的文件转换成UTF8编码的文件。

主要利用类,为java.io.InputStreamReader和java.io.OutputStreamWriter

方法如下:

    public static void GBKFileToUtf8File(String filename) throws IOException {
        final String shift = "GBK";
        final String utf8 = "utf-8";

        String backupfilename = filename + ".backup";
        File f = new File(filename);
        File outf = new File(backupfilename);
        f.renameTo(outf);

        java.io.FileInputStream in = new java.io.FileInputStream(backupfilename);
        java.io.InputStreamReader isr = new java.io.InputStreamReader(in, shift);
        java.io.BufferedReader br = (new java.io.BufferedReader(isr));

        // open output stream
        java.io.FileOutputStream out = new java.io.FileOutputStream(filename);
        java.io.BufferedWriter bw = new java.io.BufferedWriter(
                new java.io.OutputStreamWriter(out, utf8));

        char[] buffer = new char[4096];
        int len;
        while ((len = br.read(buffer)) != -1)
            bw.write(buffer, 0, len);
        br.close();
        bw.flush();
        bw.close();
    }

在 Java 中,可以使用换流将 GBK 文件换为 UTF - 8 编码。以下是一个示例代码: ```java package ZhuanHuanLiu; import java.io.*; public class Demo01Text { public static void main(String[] args) throws IOException { // 1. 创建 InputStreamReader 对象,构造方法中传递字节输入流和指定的编码表名称 GBK InputStreamReader isr = new InputStreamReader(new FileInputStream("G:\\Demo02\\src\\GBK格式的文本.txt"), "GBK"); // 2. 创建 OutputStreamWriter 对象,构造方法中传递字节输出流和指定的编码表名称 UTF - 8 OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("G:\\Demo02\\src\\UTF - 8格式的文本.txt"), "utf - 8"); // 3. 使用 InputStreamReader 对象中的方法 read 读取文件 int len = 0; while ((len = isr.read()) != -1) { // 4. 使用 OutputStreamWriter 对象中的方法 write,把读取的数据写入到文件中 osw.write(len); } // 5. 释放资源 osw.close(); isr.close(); } } ``` 此代码中,首先创建了`InputStreamReader`对象用于以 GBK 编码读取文件,接着创建`OutputStreamWriter`对象以 UTF - 8 编码写入文件,然后循环读取文件内容并写入新文件,最后关闭资源 [^4]。 此外,也可通过编写程序实现将 GBK 编码项目为 UTF - 8 编码项目,该程序可以自由配置输入文件夹、输出文件夹,若输入是单个文件,会对该文件进行编码换并存储到输出文件夹中,还能修改编码以满足其他编码方式的变,也可配置需要换的文件路径,实现细致化控制 [^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值