为什么我需要数据处理程序?

使用 ?javax.activation.DataHandler

是为了方便通过网络传输未实现可序列化的对象吗?

例如,我见过将文件从本地文件系统转换为字节,然后用这些字节创建一个并通过网络传输。
这是人们会使用的原因吗?DataHandlerDataHandlerDataHandler


答案 1

我将以 DataHandler 的 API 条目中的描述开头开始

类为以许多不同的源和格式提供的数据提供一致的接口。它使用 DataContentHandlers 管理简单的流到字符串转换和相关操作。

诚然,这不是最清楚的描述。 与 XML 和 SOAP 有关,您可以从其 API 页面的使用选项卡中看到这一点。像您一样,我用它来表示有关上传文件的数据,因为它从一个Web服务组件发送到另一个Web服务组件进行处理。DataHandler

实现的接口并不完全是指序列化处理的那种“传输”。它是关于在程序中的单独组件或单独程序之间传输信息,而不是保存对象以供以后使用。有关详细信息,请参阅可转让的 API 条目。您会注意到它链接到拖放 Java 教程,该教程与 .TransferableDataHandlerDataHandlerTransferable


答案 2

还有一些性能注意事项,即对 SOAP 附件使用 javax.activation.DataHandler 将提高性能。

例如,正如甲骨文所提到的“...改进的性能:非正式测试表明,使用 DataHandler 包装器可使图像/gif MIME 类型的吞吐量翻倍,并将 text/xml 或 java.awt.image/* 类型的吞吐量乘以大约 1.5。这是从链接

其他参考资料


推荐