如何将InputStream转换为虚拟文件

我有一个方法,期望输入变量之一是java.io.File类型,但是我得到的只是InputStream。另外,我无法更改方法的签名。

如何将InputStream转换为File类型,而无需实际将文件写入文件系统?

回答:

这样的事情应该起作用。请注意,为简单起见,我使用了Java 7功能(尝试使用可关闭资源的块)和Apache commons-

io的IOUtils。如果您不能使用它们,那将需要更长的时间,但是是相同的想法。

import org.apache.commons.io.IOUtils;

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

public class StreamUtil {

public static final String PREFIX = "stream2file";

public static final String SUFFIX = ".tmp";

public static File stream2file (InputStream in) throws IOException {

final File tempFile = File.createTempFile(PREFIX, SUFFIX);

tempFile.deleteOnExit();

try (FileOutputStream out = new FileOutputStream(tempFile)) {

IOUtils.copy(in, out);

}

return tempFile;

}

}

以上是 如何将InputStream转换为虚拟文件 的全部内容, 来源链接: utcz.com/qa/415450.html

回到顶部