读取字节流注意点

 

如果从网络上,服务器传输是一张字节流图片,在客服端获取时有时候会报如下错误:

Image image=null;
image=Image.createImage(data, 0, data.length);
为什么会报Uncaught exception java/lang/IllegalArgumentException: .

报错的主要原因是参数错误,主要是data字节流数组没有把服务端传输的字节流全部读取才会报这些错

解决方法如下:

方法一、

int length=input.readInt();
       byte[] data=null;
       int size=0;
       if(length!=0){
        data=new byte[length];
        while(size<length){
         int c=input.read();
         data[size++]=(byte)c;
        }
       }

方法二、

      int length=input.readInt();
     int readSize = -1,totalRead=0;
     byte[] data= new byte[length],readData=new byte[1024];
     while((readSize=input.read(readData))!=-1){
      
             System.arraycopy(readData,0,data,totalRead,readSize);
             totalRead +=readSize;
             if(totalRead >=length)break;
              
     }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值