欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

在java中如何將inputStream對(duì)象轉(zhuǎn)換為File對(duì)象(不生成本地文件)

 更新時(shí)間:2025年03月31日 09:48:17   作者:愛(ài)學(xué)習(xí)的大雄  
這篇文章主要介紹了在java中如何將inputStream對(duì)象轉(zhuǎn)換為File對(duì)象(不生成本地文件),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

需求說(shuō)明

在后端中通過(guò)POI生成Excel文件流,將輸出流(outputStream)轉(zhuǎn)為輸入流(inputStream)后又需要將輸入流(inputStream)轉(zhuǎn)為File對(duì)象

問(wèn)題:如果需要將輸入流(inputStream)轉(zhuǎn)為File對(duì)象,則必須要根據(jù)本地路徑去生成一個(gè)File對(duì)象才行,也就是說(shuō)不管怎樣本地都必須要生成出來(lái)一個(gè)文件

問(wèn)題解決

在經(jīng)過(guò)一系列的資料查詢后,發(fā)現(xiàn)如下方式可以大致滿足需求

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";//前綴字符串定義文件名;必須至少三個(gè)字符
    static final String SUFFIX = ".tmp";//后綴字符串定義文件的擴(kuò)展名;如果為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;
    }
}

我們運(yùn)行以上程序后tempFile即為我們需要的File對(duì)象。

看到這里你可能會(huì)好奇,這不是也在本地生成了個(gè)文件嗎?

但是它生成的文件位置是存儲(chǔ)在以下的(計(jì)算機(jī)的臨時(shí)文件目錄中),所以可以看成沒(méi)有在本地生成文件:

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

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 理解Java設(shè)計(jì)模式編程中的迪米特原則

    理解Java設(shè)計(jì)模式編程中的迪米特原則

    這篇文章主要介紹了Java設(shè)計(jì)模式編程中的迪米特原則,迪米特原則旨在降低類與類之間的耦合,需要的朋友可以參考下
    2016-02-02
  • 使用Mock進(jìn)行業(yè)務(wù)邏輯層Service測(cè)試詳解

    使用Mock進(jìn)行業(yè)務(wù)邏輯層Service測(cè)試詳解

    這篇文章主要介紹了使用Mock進(jìn)行業(yè)務(wù)邏輯層Service測(cè)試詳解,mock是一種模擬對(duì)象的技術(shù),用于在測(cè)試過(guò)程中替代真實(shí)的對(duì)象,通過(guò)mock,我們可以控制被模擬對(duì)象的行為和返回值,以便進(jìn)行更加精確的測(cè)試,需要的朋友可以參考下
    2023-08-08
  • springboot?去掉netflix?禁用Eureka的解決方法

    springboot?去掉netflix?禁用Eureka的解決方法

    這篇文章主要介紹了springboot?去掉netflix?禁用Eureka的解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-09-09
  • 關(guān)于對(duì)Java正則表達(dá)式"\\"的理解

    關(guān)于對(duì)Java正則表達(dá)式"\\"的理解

    正則表達(dá)式中,\代表轉(zhuǎn)義字符,通常是轉(zhuǎn)義一些特殊字符,下面這篇文章主要給大家介紹了關(guān)于對(duì)Java正則表達(dá)式"\\"的相關(guān)理解,需要的朋友可以參考下
    2022-09-09
  • 圖解Java排序算法之希爾排序

    圖解Java排序算法之希爾排序

    這篇文章主要為大家詳細(xì)介紹了Java排序算法之希爾排序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • JAVA使用DBUtils操作數(shù)據(jù)庫(kù)

    JAVA使用DBUtils操作數(shù)據(jù)庫(kù)

    這篇文章主要介紹了JAVA使用DBUtils操作數(shù)據(jù)庫(kù)的相關(guān)資料,文中示例代碼非常詳細(xì),幫助大家學(xué)習(xí)JAVA,感興趣的朋友可以了解下
    2020-07-07
  • Spring中依賴注入(DI)幾種方式解讀

    Spring中依賴注入(DI)幾種方式解讀

    這篇文章主要介紹了Spring中依賴注入(DI)幾種方式解讀,構(gòu)造器依賴注入通過(guò)容器觸發(fā)一個(gè)類的構(gòu)造器來(lái)實(shí)現(xiàn)的,該類有一系列參數(shù),每個(gè)參數(shù)代表一個(gè)對(duì)其他類的依賴,需要的朋友可以參考下
    2024-01-01
  • 詳解Java中的實(shí)例初始化塊(IIB)

    詳解Java中的實(shí)例初始化塊(IIB)

    在本篇文章里我們針對(duì)Java中的實(shí)例初始化塊(IIB)做想詳細(xì)分析,有需要的朋友們可以跟著學(xué)習(xí)參考下。
    2018-10-10
  • SpringBoot開(kāi)發(fā)實(shí)戰(zhàn)系列之動(dòng)態(tài)定時(shí)任務(wù)

    SpringBoot開(kāi)發(fā)實(shí)戰(zhàn)系列之動(dòng)態(tài)定時(shí)任務(wù)

    在我們?nèi)粘5拈_(kāi)發(fā)中,很多時(shí)候,定時(shí)任務(wù)都不是寫死的,而是寫到數(shù)據(jù)庫(kù)中,從而實(shí)現(xiàn)定時(shí)任務(wù)的動(dòng)態(tài)配置,下面這篇文章主要給大家介紹了關(guān)于SpringBoot開(kāi)發(fā)實(shí)戰(zhàn)系列之動(dòng)態(tài)定時(shí)任務(wù)的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • Java線程同步、同步方法實(shí)例詳解

    Java線程同步、同步方法實(shí)例詳解

    本篇文章主要通過(guò)實(shí)例介紹了Java線程:線程的同步-同步方法,需要的朋友可以參考下
    2017-04-04

最新評(píng)論