如何将InputStream转换为DataHandler?

pcorey:

我正在研究一个Java Web应用程序,其中文件将存储在数据库中。最初,我们只需调用getBytes结果集即可检索数据库中已有的文件

byte[] bytes = resultSet.getBytes(1);
...

然后DataHandler使用显而易见的构造函数将此字节数组转换为

dataHandler=new DataHandler(bytes,"application/octet-stream");

直到我们开始尝试存储和检索更大的文件之前,这一直很好。将整个文件内容转储到字节数组中,然后再从中构建DataHandler出来,仅需要太多内存。

我的直接想法是使用来检索数据库中的数据流,getBinaryStream并以某种内存有效的方式将其转换InputStream数据流DataHandler不幸的是,似乎没有直接的方法可以将转换InputStreamDataHandler我一直在玩的另一个想法是从中读取数据块InputStream并将其写入的OutputStreamDataHandler但是...我找不到一种方法来创建一个“空” DataHandlerOutputStream当我打电话时它会返回非空值getOutputStream

有人这样做吗?我会很感激您能给我或引导正确方向的任何帮助。

凯西·范·斯通(Kathy Van Stone):

我的方法是编写一个DataSource包装您的的自定义类实现InputStream然后创建DataHandler它给创建的DataSource

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章