从字节数组和mime类型转换为字符串/对象

时间:2010-07-18 15:25:38

标签: java mime

给定MIME字符串,我如何解析它以提取字符集?是否有一个实用程序将不同的MIME类型映射到对象类型(例如,为text / xml和application / xml返回'xml')

3 个答案:

答案 0 :(得分:1)

好吧,给定一个已知字符集的字节数组,转换为String是微不足道的:

String result = new String(byteArray, charset);

所以你的第一个问题被简化为“从mime类型中提取字符集的最简单方法是什么?”。这取决于您希望能够处理的输入范围以及您已经使用的库。例如,一种方法是使用javax.mail.internet.ContentType进行解析;我确信其他库提供类似的功能。

至于第二部分,我不确定“转换为对象”是什么意思。 Java中的所有内容(不包括基元)都已经是Object;如果你在谈论更具体的事情,那么你需要 更具体。没有可用的通用框架可以从任何东西神奇地转换为任何东西,所以你需要在那里缩小你的要求。

答案 1 :(得分:0)

使用Andrzej的方法,如果你的意思是你刚刚得到的String对象是一个XML,那么就有办法将它转换为Java对象。一种简单的技术是;

  1. 从字符串创建XML文档对象。
  2. 将XML Document对象转换为Java对象。
  3. 第二部分可以使用各种库/ API。很少提及;

    1. Castor(http://www.castor.org/xml-framework.html
    2. XStream(http://x-stream.github.io/
    3. 这些库非常易于使用。

答案 2 :(得分:0)

Jersy的MediaType有一个valueOf静态方法来解析MIME。

它还支持在给定值流的情况下创建对象。不幸的是,看起来它不能单独使用。