是否可以从 InputStream 创建 File 对象

2022-08-31 07:12:18

有没有办法从中创建对象?java.io.Filejava.io.InputStream

我的要求是从RAR读取文件。我不是在尝试编写临时文件,我在RAR存档中有一个文件,我正在尝试读取。


答案 1

您需要创建新文件并将内容从复制到该文件:InputStream

File file = //...
try(OutputStream outputStream = new FileOutputStream(file)){
    IOUtils.copy(inputStream, outputStream);
} catch (FileNotFoundException e) {
    // handle exception here
} catch (IOException e) {
    // handle exception here
}

我正在使用方便的IOUtils.copy()来避免手动复制流。此外,它还具有内置的缓冲功能。


答案 2

在一行中:

FileUtils.copyInputStreamToFile(inputStream, file);

(org.apache.commons.io)


推荐