我正在使用一個虛擬文件系統,並且我想從它附加一個文件到電子郵件。但是,MimeBodyPart對象只接收文件,這些文件不適用於像jimfs這樣的默認文件系統。看到我的代碼如下,當我嘗試轉換爲文件時,出現UnsupportedOperation異常。java從虛擬文件系統附加文件到電子郵件
public Email attach(Path file){
MimeBodyPart attachment = new MimeBodyPart()
attachment.attachFile(file.toFile())
attachments.add(attachment)
return this
}
您使用的是什麼版本的API?將不支持的操作發生在將文件附加到不支持虛擬文件系統的MimeBodyPart或File.toFile()上? –
file.toFile()調用拋出不支持的異常,因爲jimfsPath沒有實現該方法。我正在使用java 8.據我所知,MimeBodyPart只知道如何與文件交互,而不是Path對象。 – Steve
好所以如果我理解你正確,你需要使用jimfs API,將文件寫入文件系統,然後附加到MimeBodyPart類。高級方法是「擴展」文件並覆蓋允許從jimfs動態傳輸內容的方法。不過,我會先堅持簡單的方法。 –