62,614
社区成员
发帖
与我相关
我的任务
分享
public BufferedFileReader(String fileName) {
this.fileName = fileName;
byte[] head2 = new byte[2];
head2[0] = 0;
head2[1] = 0;
try {
InputStream in = new FileInputStream(fileName);
int bytes = 0;
try {
bytes = in.read(head2);
} catch (IOException ioE) {
}
if (bytes < 2) {
in.close();
bufReader = new BufferedReader(new InputStreamReader(
new FileInputStream(fileName)));
needCheckCharset = false;
} else {
try {
if (head2[0] == (byte)0xEF && head2[1] == (byte)0xBB) {
bufReader = new BufferedReader(new InputStreamReader(
in, "UTF-8"));
needCheckCharset = false;
} else if (head2[0] == (byte)0xFF && head2[1] == (byte)0xFE) {
bufReader = new BufferedReader(new InputStreamReader(
in, "UTF-16LE"));
needCheckCharset = false;
} else if (head2[0] == (byte)0xFE && head2[1] == (byte)0xFF) {
bufReader = new BufferedReader(new InputStreamReader(
in, "UTF-16BE"));
needCheckCharset = false;
} else {
in.close();
bufReader = new BufferedReader(new InputStreamReader(
new FileInputStream(fileName)));
needCheckCharset = true;
}
} catch (UnsupportedEncodingException ueE) {
ueE.printStackTrace();
}
}
} catch (FileNotFoundException fnfE) {
fnfE.printStackTrace();
} catch (IOException ioE) {
ioE.printStackTrace();
}
}