最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java讀取文件字符集示例方法

 更新時間:2014年02月24日 09:39:55   作者:  
這篇文章主要介紹了java讀取文件字符集的示例,需要的朋友可以參考下

復制代碼 代碼如下:

public static String getCharset(File file) {
        String charset = "GBK";
        byte[] first3Bytes = new byte[3];
        try {
            boolean checked = false;
            BufferedInputStream bis = new BufferedInputStream(
                  new FileInputStream(file));
            bis.mark(0);
            int read = bis.read(first3Bytes, 0, 3);
            if (read == -1)
                return charset;
            if (first3Bytes[0] == (byte) 0xFF && first3Bytes[1] == (byte) 0xFE) {
                charset = "UTF-16LE";
                checked = true;
            } else if (first3Bytes[0] == (byte) 0xFE && first3Bytes[1]
                == (byte) 0xFF) {
                charset = "UTF-16BE";
                checked = true;
            } else if (first3Bytes[0] == (byte) 0xEF && first3Bytes[1]
                    == (byte) 0xBB
                    && first3Bytes[2] == (byte) 0xBF) {
                charset = "UTF-8";
                checked = true;
            }
            bis.reset();
            if (!checked) {
                int loc = 0;
                while ((read = bis.read()) != -1) {
                    loc++;
                    if (read >= 0xF0)
                        break;
                    //單獨出現(xiàn)BF以下的,也算是GBK
                    if (0x80 <= read && read <= 0xBF)
                        break;
                    if (0xC0 <= read && read <= 0xDF) {
                        read = bis.read();
                        if (0x80 <= read && read <= 0xBF)// 雙字節(jié) (0xC0 - 0xDF)
                            // (0x80 -
                            // 0xBF),也可能在GB編碼內(nèi)
                            continue;
                        else
                            break;
                     // 也有可能出錯,但是幾率較小
                    } else if (0xE0 <= read && read <= 0xEF) {
                        read = bis.read();
                        if (0x80 <= read && read <= 0xBF) {
                            read = bis.read();
                            if (0x80 <= read && read <= 0xBF) {
                                charset = "UTF-8";
                                break;
                            } else
                                break;
                        } else
                            break;
                    }
                }
                System.out.println(loc + " " + Integer.toHexString(read));
            }
            bis.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return charset;
    }

相關文章

  • Java微服務實戰(zhàn)項目尚融寶接口創(chuàng)建詳解

    Java微服務實戰(zhàn)項目尚融寶接口創(chuàng)建詳解

    這篇文章主要介紹了Java微服務實戰(zhàn)項目尚融寶的接口創(chuàng)建流程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08
  • Java源碼解析之TypeVariable詳解

    Java源碼解析之TypeVariable詳解

    這篇文章主要介紹了Java源碼解析之TypeVariable詳解,具有一定參考價值,需要的朋友可以了解下。
    2017-10-10
  • SSM框架實現(xiàn)分頁和搜索分頁的示例代碼

    SSM框架實現(xiàn)分頁和搜索分頁的示例代碼

    本篇文章主要介紹了SSM框架實現(xiàn)分頁和搜索分頁的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • Jmeter實現(xiàn)Base64編碼的兩種方式

    Jmeter實現(xiàn)Base64編碼的兩種方式

    這篇文章主要介紹了Jmeter實現(xiàn)Base64編碼,大家都知道Jmeter實現(xiàn)Base64編碼有兩種方式,本文通過圖文并茂的形式把每種方法給大家介紹的非常詳細,需要的朋友可以參考下
    2022-01-01
  • 詳解Java線程編程中的volatile關鍵字的作用

    詳解Java線程編程中的volatile關鍵字的作用

    這篇文章主要介紹了Java線程編程中的volatile關鍵字的作用,針對其禁止進行指令重排序和讀寫內(nèi)存方面著重講解,需要的朋友可以參考下
    2015-12-12
  • java中獲取json的所有key方法

    java中獲取json的所有key方法

    下面小編就為大家分享一篇java中獲取json的所有key方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • Java數(shù)據(jù)結(jié)構(gòu)之常見排序算法(下)

    Java數(shù)據(jù)結(jié)構(gòu)之常見排序算法(下)

    這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)之常見排序算法(下),與之相對有(上),想了解的朋友可以去本網(wǎng)站掃搜,在這兩篇文章里涵蓋關于八大排序算法的所有內(nèi)容,需要的朋友可以參考下
    2023-01-01
  • SpringSession會話管理之Redis與JDBC存儲實現(xiàn)方式

    SpringSession會話管理之Redis與JDBC存儲實現(xiàn)方式

    本文將詳細介紹Spring Session的核心概念、特性以及如何使用Redis和JDBC來實現(xiàn)會話存儲,幫助開發(fā)者構(gòu)建更加健壯和可擴展的應用系統(tǒng),希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • @MapperScan注解與@Mapper注解的使用

    @MapperScan注解與@Mapper注解的使用

    這篇文章主要介紹了@MapperScan注解與@Mapper注解的使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Java多線程 線程組原理及實例詳解

    Java多線程 線程組原理及實例詳解

    這篇文章主要介紹了Java多線程 線程組原理及實例詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09

最新評論

乌兰察布市| 遵化市| 洪洞县| 衡水市| 靖远县| 宜兰市| 周口市| 钟祥市| 武穴市| 武平县| 滨海县| 大渡口区| 雅江县| 延川县| 彰化县| 康平县| 阳曲县| 东丽区| 搜索| 榆树市| 长岭县| 崇文区| 龙门县| 永川市| 卢湾区| 喀喇| 新竹市| 玉溪市| 汪清县| 金阳县| 湖州市| 晴隆县| 富顺县| 遂平县| 安泽县| 屏山县| 齐齐哈尔市| 博野县| 盐城市| 高密市| 福贡县|