当前位置: 代码迷 >> J2SE >> 字符源和字节流的read方法的另一种情况
  详细解决方案

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

热度:3108   发布时间:2013-02-25 00:00:00.0
字符流和字节流的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。
  相关解决方案