错误记录:com.google.protobuf.InvalidProtocolBufferException: Protocol message contain
FileInputStream in = new FileInputStream(file);
ByteArrayOutputStream out = new ByteArrayOutputStream();
byte[] b = new byte[1];
int i =0;
while ((i = in.read(b)) != -1){
out.write(b,0,b.length);
}
byte[] byteArray = out.toByteArray();
String string = new String(byteArray);
// 这里转换是因为编码方式不同,导致编码解码大小不一致
String isoString = new String(string , "ISO-8859-1");
byte[] isoret = isoString.getBytes("ISO-8859-1");
ByteArrayInputStream input = new ByteArrayInputStream(isoret );
这个错误我发现的原因是,我在编写数组转换读取留转换时,在数组转换成对象时报的错。因为方法:toByteArray()
是将字节整体赋值,所以当代码b 的字节过大时,会导致空字节各种多余的0都在里面,然后copy出,在转换对象时就会出这个错误。