[英]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.