我有一种无法理解的怪异情况。
public static void main(String[] args) throws IOException {
Reader reader = new FileReader("c:/file/UT563984.xml");
int b = 0;
while ((b = reader.read()) != -1) {
System.out.println(b);
}
}
当我以简单的小型Java程序运行此代码时,输出为
255 254 60 0 63 0 120 0 109 0 ......
但是,当我在一个包含许多用于Spring,SOAP Web Service,Junit等的jar的项目中运行它时,它会给出不同的输出-
65533 65533 60 0 63 0 120 0 109 0 .....
如您所见,BOM是完全错误的。
这里发生了什么?
是否有一些jar干扰了文件读取过程?
最佳答案
我建议使用FileInputStream读取文件,然后按原样获取字节。 FileReader涉及使用默认编码将字节转换为字符,这可能是造成混淆的原因