java - FileTranfer(DWR)中Byte[]和InputStream的区别

标签 java 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);

如果有任何优点和缺点,欢迎澄清细节。 提前致谢。

最佳答案

FileTransfer 有多个需要不同参数的构造函数。

您的第一个示例调用构造函数,该构造函数将内容作为字节数组 (byte[])。

您的第二个示例调用采用 InputStream 的构造函数,并将从传递的 InputStream 中读取内容本身。

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

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

关于java - FileTranfer(DWR)中Byte[]和InputStream的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25619058/

相关文章:

java - 我如何计算重复的单词?

Java HashMap containsKey 始终为 false

java - 我的程序陷入了不应该做的循环

java - 带有 DWR 的 Spring Form Controller

Java 将双输入转换为小数点后两位的分离方法

java - 为 PositionalList 添加方法

javascript - Javascript有什么用

java - DWR 远程调用未设置值为 XMLHttpRequest 的 X-Requested-With 请求 header

java - 想要从 DWR 请求打开 PDF 文件

Java-Spring,奇怪的NullPointerException