iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >在java中将inputStream对象转换为File对象(不生成本地文件)
  • 510
分享到

在java中将inputStream对象转换为File对象(不生成本地文件)

javapython开发语言 2023-08-18 22:08:28 510人浏览 八月长安
摘要

需求说明 在后端中通过POI生成excel文件流,将输出流(outputStream)转为输入流(inputStream)后又需要将输入流(inputStream)转为File对象 问题:如果需要将输入流(inputStream)转为Fil

需求说明

后端中通过POI生成excel文件流,将输出流(outputStream)转为输入流(inputStream)后又需要将输入流(inputStream)转为File对象

问题:如果需要将输入流(inputStream)转为File对象,则必须要根据本地路径去生成一个File对象才行,也就是说不管怎样本地都必须要生成出来一个文件

问题解决

在经过一系列的资料查询后,发现如下方式可以大致满足需求

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 {    static final String PREFIX = "stream2file";//前缀字符串定义文件名;必须至少三个字符    static final String SUFFIX = ".tmp";//后缀字符串定义文件的扩展名;如果为null,则将使用后缀".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;    }}

我们运行以上程序后tempFile即为我们需要的File对象。

看到这里你可能会好奇,这不是也在本地生成了个文件吗?但是它生成的文件位置是存储在以下的(计算机的临时文件目录中),所以可以看成没有在本地生成文件:

C:\Users\TP\AppData\Local\Temp\tmp2447618135336474361.txt

来源地址:https://blog.csdn.net/qq_49137582/article/details/131614537

--结束END--

本文标题: 在java中将inputStream对象转换为File对象(不生成本地文件)

本文链接: https://www.lsjlt.com/news/374810.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作