java NIO 实现FileServlet详解编程语言
2023-06-13 09:20:29 时间
java代码
private void output(HttpServletResponse response, String filePathAndFileName, String mimeType) throws IOException { File file = new File(filePathAndFileName); // set response headers response.setContentType((mimeType != null) ? mimeType : "application/octet-stream"); response.setContentLength((int) file.length()); // read and write file ServletOutputStream op = response.getOutputStream(); // 128 KB buffer int bufferSize = 131072; FileInputStream fileInputStream = new FileInputStream(file); FileChannel fileChannel = fileInputStream.getChannel(); // 6x128 KB = 768KB byte buffer ByteBuffer bb = ByteBuffer.allocateDirect(786432); byte[] barray = new byte[bufferSize]; int nRead, nGet; try { while ((nRead = fileChannel.read(bb)) != -1) { if (nRead == 0) continue; bb.position(0); bb.limit(nRead); while (bb.hasRemaining()) { nGet = Math.min(bb.remaining(), bufferSize); // read bytes from disk bb.get(barray, 0, nGet); // write bytes to output op.write(barray); bb.clear(); } catch (IOException e) { e.printStackTrace(); } finally { bb.clear(); fileChannel.close(); fileInputStream.close(); }
10447.html
cjava相关文章
- java 怎样卸载一个类_Java 动态卸载类[通俗易懂]
- java 取余 小数_Java小数取余问题求助「建议收藏」
- java pfx_如何在Java中读取.pfx文件的内容?
- think in java一_Think in Java(一):Java基础「建议收藏」
- java nio 详_java NIO 详解
- MySQL字段类型如何转为java_Java JDBC中,MySQL字段类型到JAVA类型的转换
- java session id 生成_Java通过sessionId获取Session「建议收藏」
- java+sm4+加密算法_SM4加密算法实现Java和C#相互加密解密
- NIO Java NIO 通讯的简单示例详解编程语言
- Java 使用 NIO 方式读文件详解编程语言
- Java学习笔记之九java二维数组及其多维数组的内存应用拓展延伸详解编程语言
- Java学习笔记之七java函数的语法规则总结详解编程语言
- 如何使用Java连接MySQL数据库(java怎么连接mysql数据库)
- Java实现MSSQL数据库连接(java连接mssql)
- Java NIO(1):浅谈I/O模型详解编程语言
- Java NIO(4):缓冲区Buffer(续)详解编程语言
- 在Linux下搭建完美的Java开发环境(linux搭建java开发环境)
- 解析Java中的Linux路径(java中linux路径)
- Java连接SQL Server:实现数据库完美对接(java链接sqlserver)
- 使用Java轻松导出MySQL数据(java导出mysql)
- Novice:学习Java 7 在Linux上的简单入门(java 7 linux)
- 使用Java连接MySQL数据库的具体操作方法(java连接mysql代码)
- java中常用的排序方法