2012-01-10 58 views
3

我想知道是否有任何方法從文件對象創建FileInputStream對象而不在文件系統上創建實際文件?我試圖做的是用一些信息創建一個文件對象,然後將該文件上傳到其他地方。我不需要它在本地文件系統上。我知道我可以創建一個臨時文件夾,然後刪除它,但想知道是否有可能不這樣做?FileInputStream沒有使用Java創建實際文件

+0

您可以在Unix上使用'tmpfs'或在Windows上使用ramdisk。 ByteArrayInputStream可能是最簡單的。 – 2012-01-10 13:36:10

回答

4

什麼,我試圖做的是創造一些 信息的文件對象,然後將該文件上傳其他

某處在這種情況下,你應該與任何文件相關的類都無法正常工作。相反,創建一個字節數組,您可以通過ByteArrayInputStream作爲InputStream

0

嘗試創建一個memory stream,您的文件存儲在存儲器中,而不是文件系統

5

您可能正在尋找一個類似ByteArrayInputStream什麼的。

文件輸入流從磁盤上的文件讀取,這是它的目的。順便說一下,Java中的File對象並不真正代表文件,而是指向磁盤上(潛在)文件的路徑。

+1

+1您可以使用ByteArrayOutputStream來幫助您構建「文件」的數據 – 2012-01-10 13:36:48

+0

我不得不調用以下方法,我無法更改它來自VersionOne API:createAttachment(String name,String fileName,InputStream stream)拋出AttachmentLengthExceededException,ApplicationUnavailableException – 2012-01-10 13:37:55

+0

@ReidMac那麼究竟是什麼問題呢? – 2012-01-10 13:39:33