Java InputStream 转 File 无需创建临时文件 - 使用 IOUtils
要将 InputStream 转换为 File,可以使用 IOUtils 类来完成。首先,您需要导入 Apache Commons IO 库,然后使用以下代码:
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
public class InputStreamToFileExample {
public static void main(String[] args) throws Exception {
InputStream inputStream = null;
OutputStream outputStream = null;
try {
// 从 InputStream 中读取数据
inputStream = getInputStreamFromSomewhere();
// 创建临时文件
File tempFile = File.createTempFile('temp', '.tmp');
// 将 InputStream 中的数据写入临时文件
outputStream = new FileOutputStream(tempFile);
IOUtils.copy(inputStream, outputStream);
// 使用临时文件进行操作,例如上传或处理
// ...
// 最后,如果不再需要临时文件,可以删除它
FileUtils.deleteQuietly(tempFile);
} finally {
// 关闭流
IOUtils.closeQuietly(inputStream);
IOUtils.closeQuietly(outputStream);
}
}
private static InputStream getInputStreamFromSomewhere() {
// 返回一个 InputStream,可以是从文件、网络或其他来源获取的
// 例如:return new FileInputStream('path/to/file');
return null;
}
}
上述代码中,我们首先从某处获取 InputStream(可以是从文件、网络或其他来源)。然后,我们创建一个临时文件,并使用 IOUtils 类将 InputStream 中的数据复制到临时文件中。最后,我们可以使用临时文件进行其他操作,例如上传或处理数据。完成后,我们可以删除临时文件。
请注意,这里使用的是 createTempFile 方法创建的临时文件,因此您不需要指定文件路径或名称。临时文件将在系统的临时文件夹中创建,并且具有唯一的随机名称。
原文地址: https://www.cveoy.top/t/topic/qnjD 著作权归作者所有。请勿转载和采集!