已采纳回答 / 斜阳_JAVA
Bytes是有符号的整数,数值范围是:-127至+127,而你的条件判断是if (buf[i] <= 0xf),所有小于F的数,包括负数都会打印0,就出现你的错误了。更改判断条件为:if ((buf[i] <= 0xf) & (buf[i] >= 0)) ,错误即可纠正
2016-04-08
已采纳回答 / 乐乐Yami
字节byte是计算机中存储信息的单位,是8位二进制数,一个汉字两个字节,一个英文一个字节。字符人们使用的记号,抽象意义上的一个符号。'1','中','$','@'....在计算机中用一个字节表示。
2016-04-05
已采纳回答 / 别路Biello
你好,你的 printHex()函数写的有问题,你一开始只读了一个字节,while循环中b一直是68,不会等于-1,所以一直输出68,在while循环最后加一句b=in.read();就可以了<...code...>
2016-04-04
已采纳回答 / _神人A
同样条件下,是应该Buffer比普通的读取快,但不是最快的,最快是用FileInputStream的getChannel()方法去读取。你可以运行下面的那段代码去对比下就知道了。<...code...>下面是运行结果:运行copy file 的普通方法需要的时间是: 94毫秒运行copy file 的buffer普通方法需要的时间是: 62毫秒运行copy file 的getChannel()方法需要的时间是: 16毫秒
2016-04-03
已采纳回答 / 木D羊
RandomAccessFile raf=new RandomAccessFile(file, "rw")应该改为: RandomAccessFile raf=new RandomAccessFile(file2, "rw");file是个目录,不是文件,不可以进行读写操作
2016-03-29
已采纳回答 / isunym
你要先下载好rt.jar.src,然后双击write()这个方法,进去,点击Attach Source,选择External location,选择External File,选择rt.jar.src路径,添加进去之后,再回到代码那里,双击write()方法进去就可以看到源码了。源码下载地址:http://download.csdn.net/download/czqiang007/5883777以后需要源码的地方都可以这样添加,希望可以帮助到你!
2016-03-28
已采纳回答 / 萌萌哒猫头鹰
因为10在ascii码中就是lf换行,所以会另起一行。如果你写32进去那么就是一个空格了。writeBytes(String s),是将字符串以一个字节一个字节写入输出流,如果字符是大于8位的,那么高8位就会被舍弃。...
2016-03-15