一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語言 - JAVA教程 - java讀取文件字符集示例方法

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

2019-11-08 14:30java技術(shù)網(wǎng) JAVA教程

這篇文章主要介紹了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;
    }

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产一区二区精品久久 | 美女撒尿部位无遮挡 | 女女宿舍互慰h文小说 | 日本高清在线播放一区二区三区 | 久久日韩精品无码一区 | 国产成人91高清精品免费 | 高清男的插曲女的 欢迎你老狼 | 精品久久免费视频 | 国产在线激情视频 | 成人精品在线 | 亚洲首页国产精品丝袜 | 国产在线一区二区杨幂 | 色天天综合色天天碰 | 91啪在线观看国产在线 | 性派对videos18party| 九九精品视频在线观看九九 | 国产成人毛片 | 亚洲剧情在线 | 久久精麻豆亚洲AV国产品 | 美女艹b| 国产精品理论片 | 国产精品99精品久久免费 | 国产成人a v在线影院 | 午夜伦理yy44008影院 | 色婷丁香 | 成人啪精品视频免费网站 | 白丝超短裙被输出娇喘不停小说 | 午夜久久久久久亚洲国产精品 | 成人永久免费 | 91亚洲专区 | 欧美久在线观看在线观看 | 涩涩成人| 久久黄色录像 | free性泰国女人hd | 国内精品在线播放 | 人妖欧美一区二区三区四区 | 高清国产欧美一v精品 | a片毛片在线免费看 | 嫩草在线视频www免费观看 | 亚洲国产精品第一页 | 亚洲精品 欧美 |