最赞回答 / mmzpr5554321
正如你所说,byte只有8位,然后int有32位,所以byte转换为int,int的前面24位是无意义的(就是跟转换过来的值无关),所以0xff=0000 0000 0000 0000 0000 0000 1111 1111 & b可以保留后8位的数值,前面24位不管是0还是1都会为0不显示。
2017-09-08
已采纳回答 / 慕雪6201052
因为他过时了。该类童工了对文件的操作,包括写于读,与其他的IO类基本没有多大的关系,是一个独立的类。而最新的IO操作,分的特别详细,包括输入流,输出流,读与写等等。不再是以前的单一类可以完成的。内存映射,,差不多可以取代RandomAccessFile 了
2017-09-06
已采纳回答 / 慕田峪1616461
如果是read(byte[] b),若最后一次读取的长度不及数组的长度,则后面的内容会是上次读取残留的内容;如果是read(byte[] b, int off, int len),若最后一次读取的长度不及数组的长度,则后面的会为空,解决了为什么用read(byte[] b)读取产生的结果比原来多的问题
2017-09-04
已采纳回答 / 慕粉2335383635
f是16进制数,ffffffc4 化为二进制就是1111 1111 1111 1111 1111 1111 1100 0100 ;0xff化为二进制是1111 1111;&是按位与,ffffffc4 & 0xff 时0xff高位补0, 最后得到的二进制数是0000 0000 0000 0000 0000 0000 1100 0100,转化为16进制就是0xc4,高位的0忽略掉
2017-09-03
已采纳回答 / qq_Hasneverforg_0
因为此处有两个异常—— FileNotFoundException, IOException ,而他们都是Exception的子类
2017-07-29
已采纳回答 / FarFromAnyRoad
为什么乱码肯定是乱码啊, 你使用了DataOutputStream,把int long String 都存了进去。你打开这个文件,使用系统的notepad程序,notepad程序不知道你这个什么编码,用了ansi,吧intlong什么都放在一起当GBK处理了。怎么做不乱码不要用记事本打开DataOutputStream创建的东西,看不到乱码,眼不见心不烦。你自己知道是什么,用DataInputStream或者InputStream能取出来用就行了。
2017-07-13