程序读取文件的页眉和页脚

时间:2012-03-12 02:16:30

标签: java java-io

我有一个包含许多记录的文本文件。每条记录都是一个xml元素。每条记录由文本分隔 - RECORD_BREAK。

实施例

<customer><name>John</name><phone>123-345-1123</phone></customer>
RECORD_BREAK
<customer><name>John</name><phone>123-345-1123</phone></customer>
RECORD_BREAK
<customer><name>John</name><phone>123-345-1123</phone></customer>
RECORD_BREAK
<customer><name>John</name><phone>123-345-1123</phone></customer>
RECORD_BREAK

在阅读记录时,我将每条记录拆分为

String [] strings = xml.split(“RECORD_BREAK”);

现在我需要为文件添加页眉和页脚。这是为了识别文件未损坏。如何读取文件的页眉和页脚。页眉和页脚就像

一样简单
<CustomerInfo>
<customer><name>John</name><phone>123-345-1123</phone></customer>
RECORD_BREAK
<customer><name>John</name><phone>123-345-1123</phone></customer>
RECORD_BREAK
 </CustomerInfo> 

如何在分割记录之前检查记录开始和结束时的标记。

1 个答案:

答案 0 :(得分:2)

理想情况下,您不会在文件中包含RECORD_BREAK标记,因为您不需要它们:您已经有按标记分隔的记录。只需使用XML解析器解析整个问题(在将其包装到顶级CustomerInfo标记后特别容易)。

这也为您提供了至少与页眉和页脚相同的非常适度的“损坏检查”级别,如果某个客户恰好被命名为“Little Bobby Tables RECORD_BREAK”,则不会失败。

您仍然可以使用XML解析器解析文件(使用RECORD_BREAK)。如果页眉与页脚不匹配,则它将不是有效的XML,解析器将告诉您(它还会告诉您有关格式错误的客户标记内容)。结果将是一个很好的Customer节点和文本节点序列(记录中断)。