将文件写入 ServletOutputStream 的最有效方法

2022-09-03 03:48:46
ServletOutputStream output = response.getOutputStream();
output.write(byte[]);

将File写入javax.servlet.ServletOutputStream的最有效方法是什么?

编辑:

如果使用NIO,这不是更有效吗?


答案 1
IOUtils.copy(in, out);
out.flush();
//...........
out.close(); // depends on your application

其中 是 FileInputStream,是 .IOUtilsApache Commons中Commons IO模块的实用程序。inoutSocketOutputStream


答案 2

你有一个ServletOutputStream。您可以写入的唯一方法是通过 java.io.*。您根本不能在其上使用NIO(除了通过包装,这是毫无意义的:它仍然是一个下面,你只是在顶部添加处理)。实际的 I/O 是网络绑定的,并且您的写入操作无论如何都会被 servlet 容器缓冲(以便它可以设置 Content-Length)标头,因此在此处查找性能调整是毫无意义的。ChannelsOutputStream


推荐