Tom*_*han 3 java buffer-overflow
我正在实现一个语法阅读器作为家庭作业的衍生产品,我正在读取一个 XML 文件,一次一个字符。我的目标是利用我通过实验室作业的代码,并改进结构和设计。
我有一个SyntaxReader继承自PushbackReader,它有一些额外的方法,如readAndExpect(char c),trimWhitespace()和readUntilChar(char c)。然后我有一个XMLSyntaxReader继承SyntaxReader并添加了像readAttribute()and这样的功能readNode()(后者对树中的孩子递归......)。
我基本上只是从我的实验室作业中获取了工作代码,并将其粘贴到这种方法中的适当位置。然而,当我试图阅读第一个孩子时,我得到了一个IOException: Pushback buffer overflow我无法弄清楚的。
这是我的 XML 文件的开头:
<Biosfar namn="Liv">ar allt som fortplantar sig
<Rike namn="Vaxter"> etc...
Run Code Online (Sandbox Code Playgroud)
我已经调试并观察了语法阅读器<R在子标签的开头一直成功阅读。此时,XMLSyntaxReader确认它是一个子标签,未读取最后两个字符(R和<,按此顺序)并调用readNode()解析子节点。当我尝试 unread 时发生异常<。
在调试器中,我也验证了 的私有pos变量PushbackReader确实设置为0,但我不知道为什么。我已经解析了一整行文本 - 为什么这些字符仍然不计算在内?
我会发布我的代码,但它很长,并且在我不确定我的确切实现是否相关之前同样有效。如果是,请指出我可以上传片段的地方,我将分享所有代码。
PushbackReader缓冲区的默认大小不是只有 1 吗?当您按下第二个字符时,这会导致此问题。如果增加缓冲区的大小会发生什么?
| 归档时间: |
|
| 查看次数: |
5563 次 |
| 最近记录: |