`
phoenix007
  • 浏览: 436173 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

批量文件编码转换

阅读更多
package zhyzh.ncs.base;
import java.io.BufferedReader;    
import java.io.BufferedWriter;    
import java.io.File;    
import java.io.FileFilter;    
import java.io.FileInputStream;    
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.io.Reader;    
import java.io.UnsupportedEncodingException;    
import java.io.Writer;    
   
public class EncodeConverter {    
   
    // 原文件目录    
    private static String srcDir = "D:\\webapps\\zpdht\\src";    
    // 转换后的存放目录    
    private static String desDir = "D:\\des";     
    // 源文件编码    
    private static String srcEncode = "gb2312";    
    // 输出文件编码    
    private static String desEncode = "utf-8";    
        
    // 处理的文件过滤,过滤器   
    private static FileFilter filter = new FileFilter() {    
        public boolean accept(File pathname) {    
            // 只处理:目录 或是 .java文件    
            if (pathname.isDirectory()    
                    || (pathname.isFile() && pathname.getName().endsWith(    
                            ".java")))    
                return true;    
            else   
                return false;    
        }    
    };    
        
    /**   
     * @param file   
     */   
    public static void readDir(File file)    
    {    
//    	以过滤器作为参数
        File[] files = file.listFiles(filter);   
        for (File subFile : files) {    
            // 建立目标目录    
            if (subFile.isDirectory()) {    
                File file3 = new File(desDir + subFile.getAbsolutePath().substring(srcDir.length()));    
                if (!file3.exists()) {    
                    file3.mkdir();    
                }    
                file3 = null;    
                readDir(subFile);    
            } else {    
                System.err.println("一源文件:\t"+subFile.getAbsolutePath() + "\n目标文件:\t" + (desDir + subFile.getAbsolutePath().substring(srcDir.length())));    
                System.err.println("-----------------------------------------------------------------");    
                try {    
                    convert(subFile.getAbsolutePath(), desDir + subFile.getAbsolutePath().substring(srcDir.length()), srcEncode, desEncode);    
                } catch (UnsupportedEncodingException e) {    
                    e.printStackTrace();    
                } catch (IOException e) {    
                    e.printStackTrace();    
                }    
            }    
        }    
    }    
        
    /**   
     *    
     * @param infile    源文件路径   
     * @param outfile   输出文件路径   
     * @param from  源文件编码   
     * @param to    目标文件编码   
     * @throws IOException   
     * @throws UnsupportedEncodingException   
     */   
    public static void convert(String infile, String outfile, String from,    
            String to) throws IOException, UnsupportedEncodingException {    
        // set up byte streams    
        InputStream in;    
        if (infile != null)    
            in = new FileInputStream(infile);    
        else   
            in = System.in;    
        OutputStream out;    
        if (outfile != null)    
            out = new FileOutputStream(outfile);    
        else   
            out = System.out;    
   
        // Use default encoding if no encoding is specified.    
        if (from == null)    
            from = System.getProperty("file.encoding");    
        if (to == null)    
            to = System.getProperty("file.encoding");    
   
        // Set up character stream    
        Reader r = new BufferedReader(new InputStreamReader(in, from));    
        Writer w = new BufferedWriter(new OutputStreamWriter(out, to));    
   
        // Copy characters from input to output. The InputStreamReader    
        // converts from the input encoding to Unicode,, and the    
        // OutputStreamWriter    
        // converts from Unicode to the output encoding. Characters that cannot    
        // be    
        // represented in the output encoding are output as '?'    
        char[] buffer = new char[4096];    
        int len;    
        while ((len = r.read(buffer)) != -1)    
            w.write(buffer, 0, len);    
        r.close();    
        w.flush();    
        w.close();    
    }    
        
   
    public static void main(String[] args) {    
        // 建立目标文件夹    
        File desFile = new File(desDir);    
        if (!desFile.exists()) {    
            desFile.mkdir();    
        }    
        desFile = null;    
   
        File srcFile = new File(srcDir);    
        // 读取目录 循环转换文件    
        readDir(srcFile);    
        srcFile = null;    
    }    
}

 

分享到:
评论
1 楼 zhwq1216 2010-08-16  
很好,多谢分享。正想找个转化软件的,找了好久都没有合适的,直接使用楼主的代码就可以了,谢谢!

相关推荐

    批量文件编码转换工具

    本工具名为"批量文件编码转换工具",专门针对那些需要处理大量文件编码问题的用户,能够有效地节省时间和精力。 GB2312编码,全称“中华人民共和国国家标准汉字编码”,是简体中文字符集的一种标准,主要应用于早期...

    批量文件编码转换器.zip

    这就需要一个能高效执行编码格式转换的工具,而《批量文件编码转换器.zip》正是为了满足这一需求而出现的。 这款工具设计的目标十分明确,旨在为用户提供一种批量处理文件编码转换的方式。它不仅支持多种编码格式的...

    批量文件编码转换器

    批量文件编码转换 只识别文本类文件,识别的是文件头,不是后缀。所以只要是文本文件,无论什么后缀都能识别。如有需要联系 yyxu123@163.com

    批量文件编码转换工具(Utf-8转GB2312、GB2312转Utf-8)

    本文将深入探讨批量文件编码转换工具,特别是“Utf-8转GB2312”与“GB2312转Utf-8”的转换过程,以及如何利用此类工具进行高效操作。 标题中的“批量文件编码转换工具”是指一种能够一次性处理大量文件,改变它们...

    批量文件编码转换器1.2

    《批量文件编码转换器1.2》是一款专为解决文件编码问题而设计的实用工具,其主要功能是将GBK编码的文件转换成UTF-8格式。在计算机领域,编码是文本数据的重要组成部分,不同的编码方式会影响文件的读取和处理。GBK是...

    GBK/BIG/UTF-8 批量文件编码转换

    标题"GBK/BIG/UTF-8 批量文件编码转换"所涉及的核心知识点是字符编码标准,包括GBK、BIG和UTF-8,以及批量转换的方法。让我们深入探讨这些概念。 1. **GBK编码**:GBK是中国大陆广泛使用的汉字编码标准,它是GB2312...

    批量文件编码格式转换工具.zip

    批量文件编码格式转换工具.zip批量文件编码格式转换工具.zip 批量文件编码格式转换工具.zip批量文件编码格式转换工具.zip 批量文件编码格式转换工具.zip批量文件编码格式转换工具.zip 批量文件编码格式转换工具.zip...

    批量字符编码转换工具,批量转换文件编码 超级批量编码转换

    批量转换文件编码 超级批量编码转换 批量转换编码 编码批量转换工具 批量转换txt编码 linux 批量转换编码 编码格式批量转换 php 字符编码转换 字符编码转换 java 字符编码转换

    java批量转换文件编码

    本话题主要关注如何使用Java进行批量文件编码转换,特别是从一种编码(如GBK)转换到另一种编码(如UTF-8)。以下是对这个主题的详细阐述: 首先,我们需要理解什么是文件编码。文件编码是存储和显示文本内容的规则...

    批量文件编码转换UltraCodingSwitch

    1.对GBK/GB2312、Unicode(LE)、Unicode(BE)、UTF8、UTF8 with Bom等编码的文件自动识别并按要求互相转换 2.对DOS格式、UNIX格式、MAC格式的文本自动识别并互相转换 3.对中文简繁体及台湾BIG5编码互相转换(需要指定源...

    超级批量编码转换 1.0

    《超级批量编码转换 1.0》是...总的来说,《超级批量编码转换 1.0》作为一款办公软件,它的核心价值在于提高了处理文本编码问题的效率和便利性,让复杂的编码转换变得简单易行,是办公人员处理文件编码问题的理想工具。

    编码批量转换工具

    批量字符编码转换工具是文件编码转换的最佳工具。是您必备的unicode编码转换器,它帮助您快速完成编码批量转换。 utf8 转gb2312编码转换举例,编码转换软件工作原理 比如要把D:\web目录下的php文件和html文件由utf8...

    Qt文件编码批量转换

    Qt5.9开发的文件编码转换。该工具我用来在Windows7下面VS2015编译器与MinGW编译器编码转换。MinGW编译器使用UTF-8编码,VS2015使用GB2312编码。 预编译头文件缺失,将头文件替换为 #include #include #include #...

    超级批量编码转换工具

    《超级批量编码转换工具》是一款专门针对文件编码转换问题而设计的强大工具,尤其适用于处理大量文件从一种编码格式转换到另一种编码格式的情况。在信息化高度发达的今天,各种编码格式的兼容性和统一性成为了数据...

    批量字符编码转换工具 20070709

    批量字符编码转换工具是文件编码转换的最佳工具。是您必备的unicode编码转换器,它帮助您快速完成编码批量转换。 utf8 转gb2312编码转换举例,编码转换软件工作原理 比如要把D:\web目录下的php文件和html文件由utf8...

    文本文件的编码方式转换

    - **批量文件编码转换**: - 使用`FolderBrowserDialog`选择包含待转换文件的目录。 - 通过`Directory.GetFiles`获取指定目录下的所有文件路径。 - 循环遍历这些文件路径,并对每个文件执行编码转换操作。 6. *...

    txt文件编码批量转换器 V2.1版

    转换器的使用方法很简单,只需把你要转换的txt文件放到任意一个文件夹里面,然后运行txt文件编码批量转换器,选择你要转换的编码,然后点击选择文件夹按钮,在弹出窗口中选择你放txt文件的那个文件夹,然后确定。...

Global site tag (gtag.js) - Google Analytics