已采纳回答 / 落叶萧萧online
b这里可以不进行&0xff,因为源码里已经进行了该操作,另外我们读取的本身就是一个字节,所以只取低八位不会改变原来的结果,只是输出形态会有区别。
2017-03-23
已采纳回答 / 慕粉1431473803
raf.read(buf)是没有返回值的,不能直接写到Arrays.toString()中。Arrays.toString()的括号中是要一个数组。raf.read(buf)的意思是读取文件的内容存放在buf中,不对请指教
2017-03-17
已采纳回答 / Jenichan
因为十六进制数总共有4个字节的符号,我们为了美观,不要显示多余的符号而取有意义的数的时候我们就要跟我们获得的值的位数相&,这样前面的ffff就有消失,你可以去掉&0xff试试。
2017-03-07
已采纳回答 / 涅米
while后面的(b=in.read())!=-1返回的是一个布尔值,而这个值只有在文件读到结尾的时候才返回false,即in.read==-1,所以在读完之前返回的都是true,都可以执行循环b的值本身不会变化,但是文件的指针pointer在每次循环后都会加1,所以每次b读出来的值都是不一样的if的判断条件是i++%10==0,先判断i%10的值是否为0,然后自增1,此时i=i+1,然后进入下一个循环,判断i+1的值除以10余数是否为0,所以就算if的条件不满足,i也执行了自增
2017-03-06