2014-09-02 46 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中读取内容本身。

如果你的文件很大,显然不要使用第一个,因为它需要将整个文件读入内存。

第二种方法在所有情况下似乎都更好,除非您还需要文件内容,那么您必须阅读两次。

相关问题