字符流和字节流的read方法的另一种情况
Reader p1 = new FileReader("文档.txt");
int p11 = 0;
while ((p11 = p1.read()) != -1) {
System.out.println(Integer.toString(p11, 16));
}
p1.close();
InputStream fm = new FileInputStream("文档.txt");
int fm1 = 0;
while ((fm1 = fm.read()) != -1) {
System.out.println(Integer.toString(fm1, 16));
}
fm.close();
文档.txt中存放的是“严”,编码是ansi。
字符流打印的是4e25,字节流打印的是d1 cf,当然都是16进制。
为什么同一文件,读出的都不一样的?
我猜是编码不同。文本存储方式是unicode,字符流打印出的是fffd 25 4e ;字节流打印出的是ff fe 25 4e
------最佳解决方案--------------------null
------其他解决方案--------------------什么ansi,其实就是平台默认的GB2312。