本文主要是介绍在java中如何将inputStream对象转换为File对象(不生成本地文件),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
《在java中如何将inputStream对象转换为File对象(不生成本地文件)》:本文主要介绍在java中如何将inputStream对象转换为File对象(不生成本地文件),具有很好的参考价...
需求说明
在后端中通过POI生成Excel文件流,将输出流(outputStream)转为输入流(inputStream)后又需要将输入流(inputStream)转为Fwww.chinasem.cnile对象
问题:如果需要将China编程输入流android(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 StringNDgCUnOXIQ 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
总结
这篇关于在java中如何将inputStream对象转换为File对象(不生成本地文件)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!