读书人

字符源和字节流的read方法的另一种情况

发布时间: 2012-12-26 14:39:29 作者: rapoo

字符流和字节流的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。

读书人网 >J2SE开发

热点推荐