加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

SAX解析XML文件有关characters的最大长度2048的问题

发布时间:2020-12-15 23:09:21 所属栏目:百科 来源:网络整理
导读:使用SAX解析XML文件,我们都知道需要重载charaters方法 [java] view plain copy @Override public void characters( char []ch, int start,153); background-color:inherit; font-weight:bold">int length) throws SAXException 但是用这个方法会有一点问题

使用SAX解析XML文件,我们都知道需要重载charaters方法

[java] view plain copy
  1. @Override
  2. publicvoidcharacters(char[]ch,intstart,153); background-color:inherit; font-weight:bold">intlength)
  3. throwsSAXException

但是用这个方法会有一点问题,其中ch这个char数组的默认最长长度为2048,如果超过这个长度,将产生一个新的char数组(也是2048长度)来存储数据,于是如果我们需要解析的数据在两个char之间的话(分别在一个的尾部和下一个的头部),那么我将会得到残缺不全的数据,因此我们当我们读到char数据的末尾时,我们需要先暂时存储一下得到的数据,然后补在下一次得到的内容的前面。参考代码如下:

copy
    StringpreMaxLengthCharacters="";
  1. finalintCHARACTERS_MAX_LENGTH=2048;
  2. Stringcontent=newString(ch,start,length);
  3. if(start+length==CHARACTERS_MAX_LENGTH){
  4. preMaxLengthCharacters=content;
  5. }
  6. if(start==0){
  7. content=preMaxLengthCharacters+content;
  8. }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读