本篇文章为你整理了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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。