writeUTF输出字符串失败的原因分析
来源:优易学  2011-9-15 11:14:23   【优易学:中国教育考试门户网】   资料下载   IT书店
  字符串比较长了之后,数据就发不过去了,经检查JDK的源代码,原来有长度限制。为了保险起见,我们还是不要超过65535/3 ,取20000好了。
  public final void writeUTF(String str) throws IOException {
  writeUTF(str, this);
  }
  static int writeUTF(String str, DataOutput out) throws IOException {
  int strlen = str.length();
  int utflen = 0;
  int c, count = 0;
  /* use charAt instead of copying String to char array */
  for (int i = 0; i < strlen; i++) {
  c = str.charAt(i);
  if ((c >= 0x0001) && (c <= 0x007F)) {
  utflen++;
  } else if (c > 0x07FF) {
  utflen += 3;
  } else {
  utflen += 2;
  }
  }
  if (utflen > 65535)
  throw new UTFDataFormatException("encoded string too long: " + utflen + " bytes");
  // 其他的语句
  }

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训