摘要: Path接口是java NIO2的一部分。首次在java 7中引入。Path接口在java.nio.file包下,所以全称是java.nio.file.Path。 java中的Path表示文件系统的路径。可以指向文件或文件夹。 也有相对路径和绝对路径之分。绝对路径表示从文件系统的根路径到文件或是文件 阅读全文
posted @ 2022-03-19 16:21 meow_world 阅读(518) 评论(0) 推荐(0)
摘要: 当学习了Java NIO和IO的API后,一个问题马上涌入脑海: 我应该何时使用IO,何时使用NIO呢?在本文中,我会尽量清晰地解析Java NIO和IO的差异、它们的使用场景,以及它们如何影响您的代码设计。 Java NIO和IO的主要区别 下表总结了Java NIO和IO之间的主要差别,我会更详 阅读全文
posted @ 2022-03-19 12:56 meow_world 阅读(49) 评论(0) 推荐(0)
摘要: Java NIO 管道是2个线程之间的单向数据连接。Pipe有一个source通道和一个sink通道。数据会被写到sink通道,从source通道读取。 这里是Pipe原理的图示: 创建管道 通过Pipe.open()方法打开管道。例如: Pipe pipe = Pipe.open(); 向管道写数 阅读全文
posted @ 2022-03-19 11:06 meow_world 阅读(121) 评论(0) 推荐(0)
摘要: Java NIO中的DatagramChannel是一个能收发UDP包的通道。因为UDP是无连接的网络协议,所以不能像其它通道那样读取和写入。它发送和接收的是数据包。 打开 DatagramChannel 下面是 DatagramChannel 的打开方式: DatagramChannel chan 阅读全文
posted @ 2022-03-19 11:00 meow_world 阅读(52) 评论(0) 推荐(0)
摘要: Java NIO中的 ServerSocketChannel 是一个可以监听新进来的TCP连接的通道, 就像标准IO中的ServerSocket一样。ServerSocketChannel类在 java.nio.channels包中。 这里有个例子: ServerSocketChannel serv 阅读全文
posted @ 2022-03-19 10:55 meow_world 阅读(98) 评论(0) 推荐(0)
摘要: Java NIO中的SocketChannel是一个连接到TCP网络套接字的通道。可以通过以下2种方式创建SocketChannel: 1.打开一个SocketChannel并连接到互联网上的某台服务器。 2.一个新连接到达ServerSocketChannel时,会创建一个SocketChanne 阅读全文
posted @ 2022-03-19 10:48 meow_world 阅读(481) 评论(0) 推荐(0)
摘要: Java NIO中的FileChannel是一个连接到文件的通道。可以通过文件通道读写文件。 FileChannel无法设置为非阻塞模式,它总是运行在阻塞模式下。 打开FileChannel 在使用FileChannel之前,必须先打开它。但是,我们无法直接打开一个FileChannel,需要通过使 阅读全文
posted @ 2022-03-18 18:39 meow_world 阅读(254) 评论(0) 推荐(0)
摘要: Selector(选择器)是Java NIO中能够检测一到多个NIO通道,并能够知晓通道是否为诸如读写事件做好准备的组件。这样,一个单独的线程可以管理多个channel,从而管理多个网络连接。 下面是本文所涉及到的主题列表: 为什么使用Selector? Selector的创建 向Selector注 阅读全文
posted @ 2022-03-18 17:53 meow_world 阅读(128) 评论(0) 推荐(0)
摘要: 在Java NIO中,如果两个通道中有一个是FileChannel,那你可以直接将数据从一个channel(译者注:channel中文常译作通道)传输到另外一个channel. transferFrom() FileChannel的transferFrom()方法可以将数据从源通道传输到FileCh 阅读全文
posted @ 2022-03-18 16:57 meow_world 阅读(42) 评论(0) 推荐(0)
摘要: Java NIO 由以下几个核心部分组成: Channels Buffers Selectors 虽然Java NIO 中除此之外还有很多类和组件,但在我看来,Channel,Buffer 和 Selector 构成了核心的API。其它组件,如Pipe和FileLock,只不过是与三个核心组件共同使 阅读全文
posted @ 2022-03-18 15:28 meow_world 阅读(58) 评论(0) 推荐(0)