复制后图片大小的问题,和设置1024字节的问题

复制后图片大小的问题,和设置1024字节的问题

设置了1024个字节,图片大小小于1024个字节,是一定要把设置的数组b1024全部填满吗?假如复制的最后一次到了1024末尾没复制好,会接着复制,所以导致会复制之后的图片比较大吗?自己的理解,希望老师开导一下

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕阿慧 2020-09-03 10:41:07

同学你好,read(byte[] b)方法是从输入流中将最多b.length个字节的数据读入一个byte数组b中。没有要求一定要把设置的数组b1024全部填满。

假如复制的最后一次到了1024末尾没复制好,丢失了一些数据,可能会导致最终的图片文件打不开,图片所占的内存小于原图片所占的内存。正常情况下如果代码没有写错,复制是不会出现问题的。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 老师,如果被复制的对象大于1024字节,这里是一个什么逻辑呢?

    2020-12-08 17:36:06
  • 如果对象大于1024那么就是一次循环复制1024,直到全部复制完?这个write(b,0,n)中的n具体是个什么数值,有点抽象,老师能不能解释下

    2020-12-08 17:45:16
  • 同学你好,

    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、public void write(byte[] b, int off, int len)方法是将指定byte数组中从off开始的len个字节写入文件输出流中。

    write(b,0,n)中n是b数组中要写入多少个字节到输出流中。

    祝学习愉快~

    2020-12-08 19:00:14
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师