![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
NIO
qiuxinfa123
这个作者很懒,什么都没留下…
展开
-
Java NIO之简单聊天
之前写过缓冲区Buffer和通道Channel:Java NIO之Buffer、Java NIO之Channel。今天主要结合Selector,一起使用NIO实现简单的对话式聊天,分为客户端和服务端:无论是服务端,还是客户端,思路都是利用Selector,获取准备就绪的通道集合,然后进行读写操作。服务端,分为两步:(1)启动服务,准备接收连接(2)利用Selector,获取准备就绪的通道集合,然后进行读写操作public class NIOServer { privat..原创 2021-01-06 20:40:17 · 225 阅读 · 0 评论 -
Java使用NIO实现大文件下载
最近遇到一个问题,需要下载上G的文件,使用传统的IO下载需要好久,后来用NIO改进了一下,写了一个下载工具类如下:public static void downloadFile(File file, HttpServletResponse response){ OutputStream os = null; try { // 取得输出流 os = response.getOutputStream();原创 2020-10-15 15:57:58 · 3678 阅读 · 2 评论 -
Java NIO之Channel
Java NIO之Buffer 一文介绍过 缓冲区Buffer。Channel是Java NIO的核心组件之一,用于连接源节点和目标节点,负责缓冲区数据的传输,分类如下:(1)FileChannel,文件通道(2)SocketChannel和ServerSocketChannel,通过TCP读写网络中的数据(3)DatagramChannel,通过UDP读写网络中的数据获取通道的方法:(1)本地IO:FileInputStream,FileOutputStream,RandomAcces原创 2020-10-29 22:58:10 · 351 阅读 · 0 评论 -
Java NIO之Buffer
Java NIO可以理解为,非阻塞IO(Non-blocking I/O),或者称之为,新的IO(New I/O)。比较核心的组件是:(1)Buffer,缓冲区,用于存储数据。(2)Channel,通道,数据传输的载体。(3)Selector,选择器或者称为多路复用器,用于监听Channel,实现一个线程监听多个通道,减少线程上下文切换的开销。本篇博客主要介绍的是Buffer,除了boolea类型之外,其他基本数据类型都有对应的Buffer,都继承于java.nio.Buffer,如下:原创 2020-10-29 21:37:42 · 153 阅读 · 0 评论