2014-09-02 43 views
1

我想知道這兩行代碼之間的區別。FileTranfer中的Byte []和InputStream之間的區別(DWR)

byte[] fileBytes = FileUtils.readFileToByteArray(new File(completeFilePath.toString())); 
    .. 
return new FileTransfer(errorFileName, "application/vnd.ms-excel", is); 

File csvFile = new File(completeFilePath.toString()); 
InputStream is = new BufferedInputStream(new FileInputStream(csvFile)); 
return new FileTransfer(errorFileName, "application/vnd.ms-excel", is); 

任何優勢和劣勢爲其中一方的歡迎就一目瞭然了細節。 在此先感謝。

+0

@Adi:謝謝Adi – 2014-09-02 08:37:08

+0

嘗試編輯第一個代碼區並指定使用'fileBytes'的位置。 – 2014-09-02 08:38:45

回答

2

FileTransfer有多個構造函數需要不同的參數。

您的第一個示例調用將內容作爲字節數組的構造函數(byte[])。

你的第二個例子調用構造函數,它需要一個InputStream,並從傳遞的InputStream中讀取內容本身。

如果你的文件很大,顯然不要使用第一個,因爲它需要將整個文件讀入內存。

第二種方法在所有情況下似乎都更好,除非您還需要文件內容,那麼您必須閱讀兩次。

相關問題