从标签(Java)匹配二进制文件的内容

时间:2010-01-06 18:56:30

标签: java regex

有一个我正在通过套接字的信封。像

<task>
<doc>
This is the contents of a file
</doc>
</task>

使用像“<doc>(.*?)</doc>”,Pattern.DOTALL这样的模式,可以很好地处理文本文档 但是把文字的内容放在那里,不能把它拿出来。 有任何想法吗? 吉姆

2 个答案:

答案 0 :(得分:1)

在base64中对Word Doc进行编码,然后将其放入xml包装器中。

Apache commons提供了一个不错的编码器/解码器:http://commons.apache.org/codec/

答案 1 :(得分:0)

您提到您正在通过套接字发送数据,因此您可以随意使用您想要的任何协议(即使您是第一个!)。我想我会做这样的事情:

通过套接字发送以下内容:

command     : 1 byte (command, enum, let '1' signifiy add_task)
header_size : 4 byte (1 int, size of header. Header is a XML snippet of meta data like doc_name)
doc_size    : 4 byte (1 int, size of raw document )
header_data : header_size bytes of data, interpret as an xml string
doc_data    : doc_size bytes, interpret as your raw data type

当然,有许多更高级别的协议可以处理这个以及更多。至少这样你就可以避免奇怪的转义序列,base64,正则表达式以及其他会让你陷入麻烦的部分。