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

java獲取一個文本文件的編碼(格式)信息

 更新時間:2022年09月22日 10:58:13   作者:java未來王者  
這篇文章主要介紹了java獲取一個文本文件的編碼(格式)信息,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下

前言:

文本文件是我們在windows平臺下常用的一種文件格式,

這種格式會隨著操作系統(tǒng)的語言不同,而出現(xiàn)其默認(rèn)的編碼不同

那么如何使用程序獲取“文本文件”的編碼方式呢?

文件編碼的格式?jīng)Q定了文件可存儲的字符類型,所以得到文件的類型至關(guān)重要

下文筆者講述獲取一個文本文件的格式信息的方法分享,如下所示:

現(xiàn)思路:

  • 通過獲取文件流的前3個字節(jié)
  • 判斷其值的方式,即可獲取文本文件的編碼方式

例:

package com.java265.other;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
public class Test {
    /*
     * java265.com 獲取文本文件的編碼方式
     *  
     **/
    public static void main(String[] args)   {
      File file = new File("E://person/java265.com/java.txt");
      System.out.println(GetEncoding(file));
      }
    public static String GetEncoding(File file)
    {
        String charset = "GBK";
        byte[] first3Bytes = new byte[3];
        try {
            boolean checked = false; 
            InputStream is = new FileInputStream(file);
            int read = is.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;
            }else if (first3Bytes[0] == (byte) 0xA
                    && first3Bytes[1] == (byte) 0x5B
                    && first3Bytes[2] == (byte) 0x30) {
                charset = "UTF-8";
                checked = true;
            }else if (first3Bytes[0] == (byte) 0xD
                    && first3Bytes[1] == (byte) 0xA
                    && first3Bytes[2] == (byte) 0x5B) {
                charset = "GBK";
                checked = true;
            }else if (first3Bytes[0] == (byte) 0x5B
                    && first3Bytes[1] == (byte) 0x54
                    && first3Bytes[2] == (byte) 0x49) {
                charset = "windows-1251";
                checked = true;
            }
            //bis.reset();
            InputStream istmp = new FileInputStream(file);
            if (!checked) {
                int loc = 0;
                while ((read = istmp.read()) != -1) {
                    loc++;
                    if (read >= 0xF0)
                        break;
                    if (0x80 <= read && read <= 0xBF)
                        break;
                    if (0xC0 <= read && read <= 0xDF) {
                        read = istmp.read();
                        if (0x80 <= read && read <= 0xBF)
                            continue;
                        else
                            break;
                    } else if (0xE0 <= read && read <= 0xEF) {
                        read = istmp.read();
                        if (0x80 <= read && read <= 0xBF) {
                            read = istmp.read();
                            if (0x80 <= read && read <= 0xBF) {
                                charset = "UTF-8";
                                break;
                            } else
                                break;
                        } else
                            break;
                    }
                }
            }
            is.close();
            istmp.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return charset; 
    }
}

到此這篇關(guān)于java獲取一個文本文件的編碼(格式)信息的文章就介紹到這了,更多相關(guān)java獲取文本編碼內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Struts 2 配置Action詳解

    Struts 2 配置Action詳解

    本篇文章主要介紹了Struts 2 配置Action詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • Maven deploy配置方法詳解

    Maven deploy配置方法詳解

    這篇文章主要介紹了Maven deploy配置方法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 淺談Mybatis+mysql 存儲Date類型的坑

    淺談Mybatis+mysql 存儲Date類型的坑

    這篇文章主要介紹了淺談Mybatis+mysql 存儲Date類型的坑,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • SpringBoot中@Conditional注解的介紹及實踐

    SpringBoot中@Conditional注解的介紹及實踐

    在 Spring Boot 中,@Conditional 注解用于實現(xiàn) 條件化 Bean 裝配,本文將詳細(xì)介紹 @Conditional 相關(guān)的注解,并結(jié)合實際應(yīng)用示例講解其使用方式,感興趣的小伙伴可以了解下
    2025-03-03
  • 詳解利用SpringMVC攔截器控制Controller返回值

    詳解利用SpringMVC攔截器控制Controller返回值

    這篇文章主要介紹了詳解利用SpringMVC攔截器控制Controller返回值,通過定義一個StringResult注解,在訪問方法的時候返回StringResult中的內(nèi)容,有興趣的可以了解一下。
    2017-01-01
  • java使用smslib連接短信貓發(fā)送短信代碼分享

    java使用smslib連接短信貓發(fā)送短信代碼分享

    這篇文章主要介紹了java使用smslib連接短信貓發(fā)關(guān)短信代碼,需要的朋友可以參考下
    2014-02-02
  • Java去掉數(shù)字字符串開頭的0三種方法(推薦)

    Java去掉數(shù)字字符串開頭的0三種方法(推薦)

    下面小編就為大家?guī)硪黄狫ava去掉數(shù)字字符串開頭的0三種方法(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • JVM常用指令速查表

    JVM常用指令速查表

    總結(jié)了一個 JVM 常用指令速查表,今天分享給大家!,需要的朋友可以參考下
    2020-02-02
  • SpringBoot中@ConditionalOnProperty注解的使用方法詳解

    SpringBoot中@ConditionalOnProperty注解的使用方法詳解

    這篇文章主要介紹了SpringBoot中@ConditionalOnProperty注解的使用方法詳解,在開發(fā)基于SpringBoot框架的項目時,會用到下面的條件注解,有時會有需要控制配置類是否生效或注入到Spring上下文中的場景,可以使用@ConditionalOnProperty注解來控制,需要的朋友可以參考下
    2024-01-01
  • java中的OPT算法實現(xiàn)方式

    java中的OPT算法實現(xiàn)方式

    這篇文章主要介紹了java中的OPT算法實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07

最新評論

苗栗县| 沙湾县| 全南县| 布尔津县| 玉田县| 竹北市| 勃利县| 大港区| 临邑县| 上林县| 惠安县| 五大连池市| 湖口县| 荣成市| 隆安县| 岚皋县| 象州县| 临泽县| 云安县| 庄河市| 土默特左旗| 德兴市| 沾益县| 囊谦县| 禹州市| 固镇县| 宕昌县| 高安市| 崇明县| 秭归县| 沂南县| 会同县| 大城县| 广汉市| 礼泉县| 乐陵市| 凯里市| 文山县| 太仓市| 卫辉市| 三门峡市|