黑马程序员技术交流社区
标题:
关于FileReader.red()问题
[打印本页]
作者:
山水游客
时间:
2012-7-12 18:14
标题:
关于FileReader.red()问题
本帖最后由 孙胜录 于 2012-7-19 14:30 编辑
FileReader fr=new FileReader("D:\\a.txt");int byt=fr.read();System.out.println(byt);read读取的是一个字节,那为什么read返回的是int类型的,而不是byte类型的?
作者:
杨康
时间:
2012-7-12 18:47
api文档说明的很清楚,fr.read()读取的是单个字符,然后用一个int型的整数记录下来,随着read()不断的读取数据,该整数随着不断增长,因为在对应的Writer类中也有个对应的方法write(int x),可以接受的参数类型是int型的,所以只需将read()返回的int型整数传递给write()就可以完成数据的写入。
作者:
游兴钟
时间:
2012-7-12 19:11
read读取的是字节 返回的却是int 与之对应的write是将接收到的int的最低8位 也就是一个byte数据写入目的
之所以这么做是为了防止读取到连续的11111111这样的数据 而我们read方法读取的结尾标示就是-1这个条件常被我们用来作为循环读写的条件 为了避免出现循环无法继续就出现了这样的解决方案 那就是read读到的字节提升成int 然后写入时候又把int强转成byte
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2