字符有问题,换成字母我也不明白。
程序用到的info.txt中是“abc”,程序如下:
Reader p1=new FileReader("info.txt");
int p11=p1.read();
System.out.println(Integer.toString(p11, 16));
p1.close();
InputStream fm=new FileInputStream("info.txt");
int fm1 = fm.read();
int fm2 = fm.read();//读取一个字节
System.out.println(Integer.toString(fm1, 16));
System.out.println(Integer.toString(fm2, 16));
fm.close();
复制代码
字符流读出的是61
字节流读出的是61 61
问题是字符流不应该是读一个字符吗?两个字节,第1个字节是61,第2个字节是62,那么字符流应该读出的是61+62*0x100=0x6261.
------解决方案--------------------------------------------------------
字符流读出的是61
字节流读出的是61 62
感觉读出什么跟文件的编码方式有关。
------解决方案--------------------------------------------------------
字符流和字节流读取多少和读取位置,和你设置的缓存区还有当前文件的position位置
------解决方案--------------------------------------------------------
应该是编码问题。。
------解决方案--------------------------------------------------------
System.out.println((char) p11);
是ASCII码
------解决方案--------------------------------------------------------