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
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
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货