我正在使用的 API 采用com.google.common.io.ByteSource
. 我的 API 接受,javax.xml.transform.Source
因为我正在做Schema
验证以及调用其他 API。是否有一种干净的方法可以从 a 转换Source
为 aByteSource
和/或有一个更好的对象可以满足这两种方法的需求(即 ByteSource 和 Source)。
2 回答
3
ByteSource
并且Source
似乎不是特别兼容的 API:
Source
一般来说,它似乎不是字节的来源。有多种实现方式,只有一种可以 (StreamSource
) 提供InputStream
用于读取字节的方式。- Even
StreamSource
似乎与 a 的预期合同不兼容ByteSource
。看起来StreamSource
基本上是单个InputStream
和/或的包装器Reader
,而每次调用时ByteSource
都希望能够返回一个新的、独立的。InputStream
openStream()
是否没有您正在使用的 API 版本需要 aInputStream
而不是 a ByteSource
?一个方法的两个版本都存在是典型的(或者应该是,无论如何)。
于 2014-09-30T19:11:52.600 回答
1
ByteSource可以给出一个 InputStream ,它可以用于使用ByteSource.openBufferedStream
.
于 2014-09-30T19:04:45.317 回答