我有一种奇怪的情况,我无法理解。
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完全错误。
这里发生了什么?
某些罐子是否干扰了文件读取过程?
答案 0 :(得分:2)
我建议使用FileInputStream读取文件,然后按原样获取字节。 FileReader涉及使用默认编码将字节转换为字符,这可能是混淆的原因