CoderHann

Java实用小技术持续更新


该博客记录有关日常开发中所遇到的Java相关的问题以及解决方法,文章以问题相关的Java模块进行分类并形成索引,读者可以通过前面的索引到达自己所需要关注的模块!

问题列表

Solution

文本文件的编码格式
有时开发中可能涉及到读取txt类似的纯文本文件,而在读取过程中可能由于文本文件不是一个编码的导致程序读取到乱码。为了解决这个问题我们先要确定文件的编码格式,这种文本文件的编码涉及到四种UTF-8,Unicode,UTF-16BE,GBK。下面是相关读取核心方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
public static String fileEncoding(String filePath) {
String code = "UTF-8";
File file = new File(filePath);
if (file.exists()) {
try {
BufferedInputStream bufferIn = new BufferedInputStream(new FileInputStream(filePath));
int flag = (bufferIn.read() << 8) + bufferIn.read();
bufferIn.close();
switch (flag) {
case 0xefbb:
code = "UTF-8";
break;
case 0xfffe:
code = "Unicode";
break;
case 0xfeff:
code = "UTF-16BE";
break;
default:
code = "GBK";
}
} catch (Exception e) {
e.printStackTrace();
}
}
return code;
}