将SAX ContentHandler字符(..)转换为InputStream

将SAX ContentHandler字符(..)转换为InputStream,stream,sax,Stream,Sax,我们编写了一个新的API,它使用SAXAPI来处理文档,并允许调用方传递处理SAX事件的SAX ContentHandler实例。这是可行的,但我们也有遗留代码,它期望内容作为InputStream 因此,我们需要实现SAX ContentHandler,它有一个getStream()方法,该方法返回InputStream,其中包含ContentHandler#characters(..)中接收的字符。关于如何有效地做到这一点,有什么想法吗 谢谢我们最终使用了Tika的BodyContentHa

我们编写了一个新的API,它使用SAXAPI来处理文档,并允许调用方传递处理SAX事件的SAX ContentHandler实例。这是可行的,但我们也有遗留代码,它期望内容作为InputStream

因此,我们需要实现SAX ContentHandler,它有一个getStream()方法,该方法返回InputStream,其中包含ContentHandler#characters(..)中接收的字符。关于如何有效地做到这一点,有什么想法吗


谢谢

我们最终使用了Tika的BodyContentHandler,并将PipeDoutpStream传递给它,它通过管道将字符传输到PipedInputStream。

这是Java,对吗?;)请发布一些代码,展示您迄今为止所做的尝试。是的,它是Java。我们没有多少。这就是我们要考虑的:StreamingContentHandler:public void characters(char[]ch,int start,int length)抛出SAXException{//todo:block,如果输入流没有足够快地耗尽String str=新字符串(ch,start,length);out.write(str.getBytes(“UTF-8”);super.characters(ch,start,length);}