簡體   English   中英

如何從Spring資源獲取文件

[英]How to get File from spring Resource

我有一個Resource對象(org.springframework.core.io.ClassPathResource)。 我需要獲取File對象,但是resource.getFile( )拋出一個Exeption File未找到。 但是在調用resource.getURI()我得到了一個結果

jar:file:/D: .... file.jar!/com//test/0be14958-3778-40bf-bd3e-ee605fcdd3f0/verify

目錄位於jar文件中。 是否可以解決ClassPathResource的限制並創建File對象?

我嘗試了一個新的File(resource.getURI()),但它失敗,並出現java.lang.IllegalArgumentException:URI不是分層的

我怎么了

我認為不可能從JAR中的內容中獲取java.io.File(因為它實際上不是文件)。 從ClassPathResource JavaDoc:

如果類路徑資源位於文件系統中,而不是JAR中的資源,則支持將解析為java.io.File

您沒有提到為什么需要它作為java.io.File,但是也許您可以重構代碼以使用ClassPathResource.getInputStream方法(使您能夠讀取資源)?

或者,或者也可以使用ClassPathResource.getInputStream將所需文件復制到文件系統上的臨時文件,然后將該文件用作純java.io.File。

File temp = File.createTempFile("temp", ".tmp");
org.apache.commons.io.IOUtils.copy(resource.getInputStream(), new FileOutputStream(temp));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM