writeUTF输出字符串失败的原因分析

writeUTF输出字符串失败的原因分析,第1张

writeUTF输出字符串失败的原因分析,第2张

字符串长了之后,数据就发不了了。在检查了JDK的源代码后,发现它有一个长度限制。保险起见,最好不要超过65535/3,取2万。
public final void write utf(String str)抛出IOException {
writeUTF(str,this);
}
static int write utf(String str,DataOutput out)抛出io exception {
int strlen = str . length();
int ut flen = 0;
int c,count = 0;
/*使用charAt而不是将字符串复制到char array */
for(int I = 0;i < strleni++){
c = str . charat(I);
if((c > = 0x 0001)& &(c utf len++;
} else if(c > 0x 07 ff){
ut flen+= 3;
} else {
ut flen+= 2;
}
}
if(ut flen > 65535)
throw new UTFDataFormatException("编码字符串太长:"+ut flen+" bytes ");
//其他语句
}

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » writeUTF输出字符串失败的原因分析

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情