将HttpServletResponse转换为FileInputStream

时间:2018-11-20 12:16:29

标签: servlets fileinputstream

我从FTP服务器下载了一个Zip文件,并且下载的文件在HttpServletResponse对象中可用。

我已经编写了一个实用程序来使用FileInputStream解压缩存档文件。

我现在想首先将HttpServletResponse转换为FileInputStream,以便可以解压缩下载的文件并将其上传回FTP服务器位置。

我正在考虑编写一个程序来创建一个临时文件,以将数据从HttpServletResponse移至FileInputStream,但我对此持怀疑态度。下面是示例程序。

HttpServletResponse response
...
//Programming logic to download file from FTP to response object
...
FileInputStream fis = null;
FileChannel inputChannel = null;
FileChannel outputChannel = null;
Path archiveFilePath = Files.createTempFile(fileName, null);
OutputStream outStream = (OutputStream) response.getOutputStream();
if(outStream != null) {
    FileOutputStream fos = (FileOutputStream) outStream;
    outputChannel = fos.getChannel();
    fis = new FileInputStream(archiveFilePath.toFile());
    inputChannel = fis.getChannel();
    outputChannel.transferTo(0, inputChannel.size(), inputChannel);
    outputChannel.close();
    fos.close();
}

谁能帮助我了解我们如何从HttpServletResponse转换为FileInputStream?要使上述程序按要求工作,需要做些什么。

任何有关此主题的帮助都将受到赞赏。

此致

Alphonsa

0 个答案:

没有答案