![]() |
1
2
如果你知道这份文件总是格式不好。。。就这样吧。添加新虚拟对象
|
![]() |
2
1
您将需要创建两个单独的文档对象,方法是将文件分解为更小的部分并分别解析这些部分(或者通过添加一个包含这两个部分的标记将它们重构为一个更大的文档)。
|
![]() |
3
0
|
![]() |
4
0
我可能会创建一个SequenceInputStream,在其中您将真实流与两个ByteArrayInputStreams夹在一起,这两个ByteArrayInputStreams返回一些伪根开始标记和结束标记。
|
![]() |
5
0
在某种程度上,我同意Jim Garrison的观点,使用InputStream或StreamReader并将输入打包到所需的标记中,这是一种简单易行的方法。我可以预见的主要问题是,您必须对有效和无效的格式进行一些检查(如果您希望能够对有效和无效数据都使用该方法),如果格式无效(因为缺少根级别的标记),请用标记包装输入,如果其有效,则不要包装输入。如果输入因其他原因无效,也可以更改输入以更正格式问题。 另外,最好将ipnut存储在字符串集合(某种类型)中,而不是字符串本身,这意味着您对输入大小没有太多限制。将文件中的每个字符串设为一行。您应该最终得到一个逻辑性和易于遵循的结构,这将使将来更容易更正其他格式问题。 最困难的部分是找出是什么导致了无效的格式。在您的情况下,只需检查根级别的标记,如果标记存在并且格式正确,不要包装,如果没有,包装。 |