Java获取文件编码
时间: 2024-01-15 09:05:48 浏览: 61
java 获取文件编码
在Java中获取文件编码可以使用以下代码:
```java
import java.io.*;
public class FileCharsetDetector {
public static void main(String[] args) {
String file = "test.txt"; // 文件路径
String charset = getFileCharset(file); // 获取文件编码
System.out.println("File charset: " + charset);
}
public static String getFileCharset(String filePath) {
try {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(filePath));
byte[] head = new byte[3];
bis.mark(0);
int read = bis.read(head, 0, 3);
if (read == -1) {
return "UTF-8";
}
if (head[0] == -1 && head[1] == -2) {
return "UTF-16LE";
}
if (head[0] == -2 && head[1] == -1) {
return "UTF-16BE";
}
if (head[0] == -17 && head[1] == -69 && head[2] == -65) {
return "UTF-8";
}
bis.reset();
InputStreamReader isr = new InputStreamReader(bis);
String charset = isr.getEncoding();
bis.close();
return charset;
} catch (Exception e) {
e.printStackTrace();
return "UTF-8"; // 默认返回UTF-8编码
}
}
}
```
这段代码会根据文件头的字节序来判断文件编码,如果无法判断则默认返回UTF-8编码。
阅读全文