java如何获取一个文本文件的编码(格式)信息呢?(java获取文本内容)

  本篇文章为你整理了java如何获取一个文本文件的编码(格式)信息呢?(java获取文本内容)的详细内容,包含有java获取文件的字符编码 java获取文本内容 java从文本文件中获取数据 java获取word的文本 java如何获取一个文本文件的编码(格式)信息呢?,希望能帮助你了解 java如何获取一个文本文件的编码(格式)信息呢?。

  转自:http://www.java265.com/JavaJingYan/202110/16350332691561.html

  

  文本文件是我们在windows平台下常用的一种文件格式,

  这种格式会随着操作系统的语言不同,而出现其默认的编码不同

  那么如何使用程序获取“文本文件”的编码方式呢?

  文件编码的格式决定了文件可存储的字符类型,所以得到文件的类型至关重要

  

  下文笔者讲述获取一个文本文件的格式信息的方法分享,如下所示:

  

实现思路:

 

   通过获取文件流的前3个字节

   判断其值的方式,即可获取文本文件的编码方式

  

 

  例:

  

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));

  
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;

  以上就是java如何获取一个文本文件的编码(格式)信息呢?(java获取文本内容)的详细内容,想要了解更多 java如何获取一个文本文件的编码(格式)信息呢?的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: