`
liss
  • 浏览: 842610 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

利用第三方的Jar包内的类和方法来判别文件编码

阅读更多

今天在论坛里看见了一个人发帖子问,如何查看文件的编码。有一个人回帖推荐了一片文章,我看了一下,觉得挺好的,我把原文的意思取舍了一下,整理成了下面的文章。原文请查看:http://www.iteye.com/topic/108540作者是hdwangyi 。

他在帖子中贴出了一段代码来判断一个文本是UTF-8编码的,思路是读取一个txt文件,截取字符流的前3个字符(即标示位),判断是否与UTF-8的格式的标示位一致。

import java.io.*;

public class TestText {
    public static void main(String args[]){
        File file = new File("C:/1.txt");
        
        try{
            InputStream stream = new FileInputStream(file);
            byte[] byteArray = new byte[3];
            
            stream.read(byteArray);
            stream.close();
            
            if (byteArray[0] == -17 && byteArray[1] ==  -69 && byteArray[2] == -65)
                System.out.println("UTF-8");
            else
                System.out.println("可能是其他的编码");
            
        }
        catch(Exception e){
            e.printStackTrace();
        }
    }
}

 但显然这种方式有很大的局限性,而且需要对文件编码有着一定的了解。于是作者用到了第三方的jar包cpdetector,下载地址:http://cpdetector.sourceforge.net/如何在Eclipse中导入jar包,请看http://blog.csdn.net/justinavril/archive/2008/08/07/2783182.aspx。这个jar包内的类和方法能够准确判断文件的编码格式。

 

 

import cpdetector.io.*;
import java.io.*;
import java.nio.charset.*;

public class PageCode {
    public static void main(String args[]){
        
        CodepageDetectorProxy detector = CodepageDetectorProxy.getInstance();
        detector.add(JChardetFacade.getInstance());
        
        Charset charset = null;
        
        File f = new File("C:/1.txt");  
        
        try {   
            charset = detector.detectCodepage(f.toURL());   
        } 
        catch (Exception e) {
            e.printStackTrace();
        }   
        if(charset!=null){   
            System.out.println(f.getName()+"编码是:"+charset.name());   
        }else  
            System.out.println(f.getName()+"未知");  
    }
}

输出:

 

1.txt编码是:GB2312 

 可以把main函数的相关内容改成一个方法重用,从而达到自由判断文件编码的目的。 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    在可执行jar中载入第三方jar的几个解决方法

    当使用`-jar`选项运行可执行JAR时,JVM仅使用APPClassLoader,并且仅从该JAR中查找类,忽略了CLASSPATH和其他类路径设置,这就是为何在可执行JAR中无法加载第三方JAR的原因。 为了解决这个问题,我们可以采用以下几...

    android 生成aar/jar包包含第三方jar包没有第三方jar包怎么办

    里面涉及到一个第三方的包,这时候我生成aar/jar包给对方使用的时候,调用不到第三方包的代码,只可以调用我写的类的代码. 问题 我就去网上去寻找,aar/jar包生成包含第三方等问题.网上也有很多答案,我随便发一个别人的...

    exe4j打包(包含第三方jar包)

    【标题】:exe4j打包(包含第三方jar包) 在Java开发中,将项目打包成可执行文件(如.exe)对于非Java环境的用户来说是非常方便的。exe4j是一款强大的工具,它允许我们将Java应用转换为Windows平台下的可执行程序,...

    获取文件编码方式的两种方式(1.cpdetector第三方jar包,包含源码elipse项目;2.EncodingDetect.java工具类)

    本篇文章将详细介绍两种常用的方法来检测Java程序中的文件编码:一是使用`cpdetector`第三方库,二是通过自定义的`EncodingDetect.java`工具类。 1. **cpdetector第三方库** `cpdetector`是一个开源的Java库,它...

    Android 混淆打包不混淆第三方jar包

    Android混淆打包不混淆第三方jar包Android 混淆打包不混淆第三方jar包

    eclipse 第三方jar包配置.txt

    本文将详细介绍一种不依赖于Eclipse内置buildpath功能的方法来配置第三方JAR包。 #### 二、Eclipse项目结构简介 在深入讨论如何配置第三方JAR包之前,我们需要先了解Eclipse项目的几个关键概念: 1. **项目路径**...

    jdk引入第三方jar

    在Java开发过程中,引入第三方JAR包是常见的操作,它能帮助我们快速利用已有的库功能,节省开发时间和精力。本篇文章将详细讲解如何在Java项目中导入并使用第三方JAR包,以及与之相关的工具和实践技巧。 首先,我们...

    flink安装所需要的第三方jar

    标题中的“flink安装所需要的第三方jar”指的是在部署和运行Apache Flink项目时,除了Flink自身的基础库之外,可能还需要依赖的一些外部JAR包。这些JAR包通常包含了Flink与其它系统的交互所需的组件,比如Hadoop。在...

    打包第三方Jar插件

    确保第三方jar包在构建路径中,才能在编译和运行时正确引用其类和方法。 3. **Eclipse与MyEclipse的类加载机制** - Eclipse和MyEclipse使用OSGi(Open Services Gateway Initiative)框架来管理插件和类加载。OSGi...

    Spring使用AOP的三个jar包

    在实际开发中,你可以根据需求选择合适的织入方式(如Spring的代理模式或AspectJ的字节码织入),并结合这三个jar包,灵活地使用AOP来编写解耦、模块化的代码。同时,了解这些基础组件的工作原理,将有助于你更好地...

    hadoop源码的第三方jar包

    这些第三方jar包是Hadoop 2.2开发环境的重要组成部分,它们提供了Hadoop所需的各种服务和功能。通过引入这些库,开发者可以更高效地调试和扩展Hadoop源代码,了解其内部机制,并创建满足特定需求的应用。在Eclipse...

    maven批量导入第三方jar包至本地库工具

    5. **项目构建**:配置完成后,Maven在构建项目时就能找到这些第三方jar包,从而顺利完成编译和打包。 使用这个工具的一个关键点是确保每个导入的jar包都有正确的坐标信息,否则Maven可能无法正确解析和使用它们。...

    FileUpload上传第三方JAR包

    综上所述,"FileUpload上传第三方JAR包"涉及的不仅是文件上传,还包括对类路径的管理、依赖注入的理解以及安全性与性能的考量。正确理解和运用这些知识点,能帮助开发者构建更高效、安全的Java Web应用。

    第三方SDK的Jar包在Delphi XE5中的引入

    "第三方SDK的Jar包在Delphi XE5中的引入" Delphi XE5 是一个功能强大的集成...本文介绍了一种简便的方法来将第三方 SDK 的 Jar 包引入 Delphi XE5 中,希望能够帮助新接触 Delphi XE5 的同学们更好地使用第三方 SDK。

    Android端上传文件的jar包

    Android提供了FileInputStream或FileReader类来读取文件,同时需要使用流操作(如BufferedInputStream)将文件内容转换为网络可传输的格式。 5. **进度监听**:为了提供良好的用户体验,通常需要在上传过程中显示...

    eclipse查看第三方jar包源码

    2.再删除eclipse的configuration目录下org.eclipse.update文件 3.重启eclipse,点击菜单栏中File->Restart 4.下载jad的可执行文件,解压后放在某一磁盘中.链接:http://varaneckas.com/jad/ 5.打开Eclipse,prefrence...

    Fatjar打包第三方包

    Fatjar,又称为“胖Jar”,指的是将所有依赖库(包括第三方jar包)一起打包到单个JAR文件中的方法。这样做可以使得最终用户无需担心类路径配置问题,只需双击运行这个“胖”JAR即可。 在MyEclipse和Eclipse中,打包...

    eclipse导出第三方jar包插件fatjar

    - **Libraries**: 这是最重要的部分,你需要添加所有项目依赖的第三方JAR包。点击“Add External JARs…”或“Add JARs…”,选择项目中引用的库文件。 5. 完成上述配置后,点击“Finish”开始导出过程。Eclipse会...

    myeclipse打包jar文件包含第三方jar包(文档+工具)

    `FatJar`是一个第三方插件,适用于`Eclipse`和`MyEclipse`,它的主要功能是帮助开发者将所有项目依赖的库文件(即第三方JAR包)打包进最终的可执行JAR中。这样,当用户运行这个单一的JAR文件时,不需要额外配置类...

    java必须第三方jar文件

    描述中提到的"在这里拥有你想要的第3方jar文件"表明可能有一个资源库或者下载站点,专门收集和提供各种Java开发所需的第三方JAR包。这对于开发者来说是非常宝贵的资源,因为他们可以快速找到并引入需要的库,而无需...

Global site tag (gtag.js) - Google Analytics