0

我正在使用的 API 采用com.google.common.io.ByteSource. 我的 API 接受,javax.xml.transform.Source因为我正在做Schema验证以及调用其他 API。是否有一种干净的方法可以从 a 转换Source为 aByteSource和/或有一个更好的对象可以满足这两种方法的需求(即 ByteSource 和 Source)。

4

2 回答 2

3

ByteSource并且Source似乎不是特别兼容的 API:

  • Source一般来说,它似乎不是字节的来源。有多种实现方式,只有一种可以 ( StreamSource) 提供InputStream用于读取字节的方式。
  • EvenStreamSource似乎与 a 的预期合同不兼容ByteSource。看起来StreamSource基本上是单个InputStream和/或的包装器Reader,而每次调用时ByteSource都希望能够返回一个新的、独立的。InputStreamopenStream()

是否没有您正在使用的 API 版本需要 aInputStream而不是 a ByteSource?一个方法的两个版本都存在是典型的(或者应该是,无论如何)。

于 2014-09-30T19:11:52.600 回答
1

ByteSource可以给出一个 InputStream ,它可以用于使用ByteSource.openBufferedStream.

于 2014-09-30T19:04:45.317 回答