Tag: 输出流

如何将InputStream转换为DataHandler?

我正在研究一个java Web应用程序,其中文件将存储在数据库中。 最初我们通过在结果集上调用getBytes来检索数据库中已有的文件: byte[] bytes = resultSet.getBytes(1); … 然后使用明显的构造函数将此字节数组转换为DataHandler : dataHandler=new DataHandler(bytes,”application/octet-stream”); 这很有用,直到我们开始尝试存储和检索更大的文件。 将整个文件内容转储到字节数组中,然后构建一个DataHandler只需要太多内存。 我的直接想法是使用getBinaryStream检索数据库中的数据流,并以某种方式将该InputStream以内存效率的方式转换为DataHandler 。 不幸的是,似乎并没有将InputStream转换为DataHandler的直接方法。 我一直在玩的另一个想法是从InputStream读取数据块并将它们写入DataHandler的OutputStream 。 但是……当我调用getOutputStream时,我找不到创建“空” DataHandler的方法,该DataHandler返回非null的OutputStream … 有没有人这样做过? 我很感激你能给我的任何帮助或者正确的方向。