网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的范文:

 

标题 Java自动根据文件内容的编码来读取避免乱码
范文
    通过cpdetector这个开源的jar包可以自动判断当前文件的内容编码,从而在读取的时候选择正确的编码读取,避免乱码问题。
    测试结果,提供截图:
    
    package com.zuidaima.test;
    import info.monitorenter.cpdetector.io.ASCIIDetector;
    import info.monitorenter.cpdetector.io.CodepageDetectorProxy;
    import info.monitorenter.cpdetector.io.JChardetFacade;
    import info.monitorenter.cpdetector.io.ParsingDetector;
    import info.monitorenter.cpdetector.io.UnicodeDetector;
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.InputStreamReader;
    public class Main {
    public static String getContent(String path) throws Exception {
    File file = new File(path);
    CodepageDetectorProxy detector = CodepageDetectorProxy.getInstance();
    detector.add(new ParsingDetector(false));
    detector.add(JChardetFacade.getInstance());
    detector.add(ASCIIDetector.getInstance());
    detector.add(UnicodeDetector.getInstance());
    java.nio.charset.Charset charset = null;
    try {
    charset = detector.detectCodepage(file.toURI().toURL());
    } catch (Exception ex) {
    ex.printStackTrace();
    }
    String charsetName = null;
    if (charset != null) {
    charsetName = charset.name();
    } else {
    charsetName = "UTF-8";
    }
    BufferedReader reader = new BufferedReader(new InputStreamReader(
    new FileInputStream(file), charsetName));
    String line = null;
    String lines = "";
    while ((line = reader.readLine()) != null) {
    lines += line + " ";
    }
    reader.close();
    return lines;
    }
    public static void main(String[] args) throws Exception {
    System.out.println(getContent("bin/gbk.txt"));
    System.out.println(getContent("bin/utf8.txt"));
    }
    }
随便看

 

在线学习网范文大全提供好词好句、学习总结、工作总结、演讲稿等写作素材及范文模板,是学习及工作的有利工具。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/22 18:25:50