同学你好,
1、public int read(byte[] b)方法是从输入流中将最多b.length个字节的数据读入到byte数组b中。
如果byte[] b的长度为1024,那么read(byte[] b)最多可以从被复制的文件中读取到1024个字节。 如果被复制的对象的总字节数大于1024,那么说明我们调用一次read(byte[] b)方法是不能将整个文件读取完的。还需要再调用read(byte[] b)方法。
如果对象大于1024那么就是一次循环复制1024,直到全部复制完。
2、这种正常现象,根据字节得到kb值为:295000/1024=288.085938,得到的结果与显示的结果它们之间还是有一定的差异的,比如:
如上所示,262528字节是这个图片的字节数,262528/1024=256.375。所以字节与KB之间还是有一定的差异,所以每次读取1024个字节,当读取最后一次时,被复制图片的字节数不到1024个,但输入输出流还是会读取并写入1024个字节,此时复制后的图片就会比要复制的图片大
祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星