读取字节流注意点

来源:互联网 发布:深圳软件开发工资标准 编辑:程序博客网 时间:2024/06/09 17:20

 

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

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;
              
     }

原创粉丝点击