别纠结家蛙还是抓蛙了。反正2个读法都是错的。
英 [ 'dʒɑ:və ] 美 [ ˈdʒævə, ˈdʒɑvə ]
英 [ 'dʒɑ:və ] 美 [ ˈdʒævə, ˈdʒɑvə ]
2017-12-23
最赞回答 / qq_慕虎6536986
理论上是不通的。按道理应该是批量比缓冲更快。可以看一下源码,知道缓冲底层调的是批量。如果数据不对,试一下多试几次。有可能是JVM垃圾收集影响了。还有要拷贝不同的文件。读过的文件操作系统有缓存了。拷一个1-2GB的文件试试。<...code...>
2017-12-20
叫“禹爸爸”同志的评论点赞数第二的我不知道点赞的都怎么想的,说明你们连read(byte[] bytes,int off,int len)都没有搞清楚,建议回到一上节课去补一下。
2017-12-19
byte类型转化int需要在高位补1,老师在代码中已经写了 Integer.toHexString()& 0xff,这里是位运算取低8位,只需要改动判断 if((buf[i]&0xff)<=0xf),老师最后在红字里已经说明,你自己留着上节课的判断能怪谁呢,所以好好学吧
2017-12-19
我觉得read()方法的返回值要特别说明一下,不带参数的返回的是读出单个字节的int表示方式,而三个参数的read(byte[] b, int off, int len)方法,返回值是一共读了多少个字节,虽然都是int,但是含义不一样,在前面的2个例子中,有的人很可能把int返回值都理解成字节数量,导致看不懂为什么要转换成16进制输出
2017-12-14
不添加flush()方法明显比加flush()方法块太多啊,而且flush()方法放在循环体中太影响效率了吧,每循环一次都要刷新缓存。放在循环体外面应该更好一点吧。
一边读,一边写好不好? 还是一次性的把文件读到字节数组,利用FileOutputStream 写入到目标文件输出流 ?
2017-12-11