Java FileTransfer(DWR)中字节[]和InputStream之间的差异
我想知道这两行代码之间的区别Java FileTransfer(DWR)中字节[]和InputStream之间的差异,java,dwr,Java,Dwr,我想知道这两行代码之间的区别 byte[] fileBytes = FileUtils.readFileToByteArray(new File(completeFilePath.toString())); .. return new FileTransfer(errorFileName, "application/vnd.ms-excel", is); 及 任何一方的优势和劣势都欢迎澄清细节。 提前感谢。FileTransfer有多个构造函数,它们需要不同的参数 第一个示例调用构造函
byte[] fileBytes = FileUtils.readFileToByteArray(new File(completeFilePath.toString()));
..
return new FileTransfer(errorFileName, "application/vnd.ms-excel", is);
及
任何一方的优势和劣势都欢迎澄清细节。
提前感谢。FileTransfer有多个构造函数,它们需要不同的参数 第一个示例调用构造函数,该构造函数将内容作为字节数组(
byte[]
)
第二个示例调用构造函数,该构造函数接受InputStream
,并从传递的InputStream
读取内容本身
如果文件很大,显然不要使用第一个文件,因为它需要将整个文件读入内存
第二种方法似乎在所有情况下都更好,除非您还需要文件内容,否则您必须阅读两次。尝试编辑第一个代码区域并指定使用
fileBytes
的位置。
File csvFile = new File(completeFilePath.toString());
InputStream is = new BufferedInputStream(new FileInputStream(csvFile));
return new FileTransfer(errorFileName, "application/vnd.ms-excel", is);