要将 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 方法创建的临时文件,因此您不需要指定文件路径或名称。临时文件将在系统的临时文件夹中创建,并且具有唯一的随机名称。

Java InputStream 转 File 无需创建临时文件 - 使用 IOUtils

原文地址: https://www.cveoy.top/t/topic/qnjD 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录