如果从网络上,服务器传输是一张字节流图片,在客服端获取时有时候会报如下错误:
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;
}