随笔分类 -  翻译-java nio教程

摘要:所有文章 https://www.cnblogs.com/lay2017/p/12901123.html 正文 我们什么时候该使用IO,什么时候该使用NIO呢? 本文会罗列一些NIO和IO的不同点,和用法,以及它们都是如何影响设计的。 主要的不同点 IO NIO 面向流 面向缓冲区 阻塞IO 非阻塞 阅读全文
posted @ 2020-05-20 10:12 __lay 阅读(221) 评论(0) 推荐(0)
摘要:所有文章 https://www.cnblogs.com/lay2017/p/12901123.html 正文 前面的文章中,我们学习了不少关于Java NIO相关的概念,比如:Selector、Channel、Buffer等,但是要设计一个非阻塞的服务器似乎还不够。要使用NIO构建非阻塞服务器比起 阅读全文
posted @ 2020-05-20 00:31 __lay 阅读(431) 评论(0) 推荐(0)
摘要:所有文章 https://www.cnblogs.com/lay2017/p/12901123.html 正文 NIO的Files提供了操作系统文件的方法,Files经常和Path协作使用,所以在本文之前了解Path是比较有帮助的。 Files.exists exists方法用于检测Path是否存在 阅读全文
posted @ 2020-05-19 16:27 __lay 阅读(458) 评论(0) 推荐(0)
摘要:所有文章 https://www.cnblogs.com/lay2017/p/12901123.html 正文 Path是从Java 7开始加入NIO软件包的。它可以表示一个文件,也可以表示一个路径。可以是绝对路径,也可以是相对路径。 你可能会觉得Path和常见的File很相似,大多数场景下File 阅读全文
posted @ 2020-05-19 14:57 __lay 阅读(288) 评论(0) 推荐(0)
摘要:所有文章 https://www.cnblogs.com/lay2017/p/12901123.html 正文 在Java7的时候,加入了AsynchronousFileChannel,使得你可以进行异步地read或write操作。本文关于如何使用AsynchronousFileChannel。 创 阅读全文
posted @ 2020-05-19 13:54 __lay 阅读(293) 评论(0) 推荐(0)
摘要:所有文章 https://www.cnblogs.com/lay2017/p/12901123.html 正文 NIO的管道(Pipe)是一种打通两个线程之间数据传输的一种方式。Pipe包含两个channel: 1)Source Channel 2)Sink Channel 你可以向SinkChan 阅读全文
posted @ 2020-05-19 10:02 __lay 阅读(199) 评论(0) 推荐(0)
摘要:所有文章 https://www.cnblogs.com/lay2017/p/12901123.html 正文 DatagramChannel是一个可以从UDP连接上发送和接收数据包的通道。和TCP不同,UDP是一种不可靠的无连接协议因此我们对DatagramChannel的读写操作就无法直接照搬S 阅读全文
posted @ 2020-05-19 09:54 __lay 阅读(272) 评论(0) 推荐(0)
摘要:所有文章 https://www.cnblogs.com/lay2017/p/12901123.html 正文 ServerSocketChannel不直接传输数据,但是它可以监听TCP连接,就像是ServerSocket一样 ServerSocketChannel serverSocketChan 阅读全文
posted @ 2020-05-17 21:06 __lay 阅读(233) 评论(0) 推荐(0)
摘要:所有文章 https://www.cnblogs.com/lay2017/p/12901123.html 正文 SocketChannel表示一个连接到TCP通道的Socket上。有两种方式可以创建SocketChannel 1.你可以直接open一个SocketChannel,然后connect 阅读全文
posted @ 2020-05-17 20:23 __lay 阅读(354) 评论(0) 推荐(0)
摘要:所有文章 https://www.cnblogs.com/lay2017/p/12901123.html 正文 Java NIO软件包中的FileChannel表示的是连接到文件上的通道。使用FileChannel,你可以从文件中读取数据,以及写入数据到文件中。 FileChannel不可以被设置为 阅读全文
posted @ 2020-05-17 20:04 __lay 阅读(279) 评论(0) 推荐(0)
摘要:所有文章 https://www.cnblogs.com/lay2017/p/12901123.html 正文 Java NIO选择器(selector)是一个可以监控一个或多个Channel的组件,监控Channel是否可以read或者write操作。这是一种使得单线程可以管理多个Channel的 阅读全文
posted @ 2020-05-17 18:45 __lay 阅读(412) 评论(0) 推荐(0)
摘要:所有文章 https://www.cnblogs.com/lay2017/p/12901123.html 正文 在Java NIO当中,如果两个Channel中有一个Channel是FileChannel,你可以直接从一个Channel将数据传到另一个Channel。FileChannel中包含了t 阅读全文
posted @ 2020-05-17 17:34 __lay 阅读(419) 评论(0) 推荐(0)
摘要:所有文章 https://www.cnblogs.com/lay2017/p/12901123.html 正文 在前面的文章中,我们默认了一个规则。就是默认了一个Channel对应了一个Buffer,它们之间的读写发生在一对一关系里。事实上,Channel是可以对应多个Buffer的,也就是一对多关 阅读全文
posted @ 2020-05-17 17:18 __lay 阅读(257) 评论(0) 推荐(0)
摘要:所有文章 https://www.cnblogs.com/lay2017/p/12901123.html 正文 本文继续Java NIO的缓冲区(Buffer)部分。我们前面不断提及的,Buffer将在和Channel打交道的时候使用。我们从Channel读入数据到Buffer,或者从Buffer写 阅读全文
posted @ 2020-05-17 16:14 __lay 阅读(305) 评论(0) 推荐(0)
摘要:所有文章 https://www.cnblogs.com/lay2017/p/12901123.html 正文 Java NIO中的通道(Channel)和我们熟悉的流(Stream)很相似,区别点在于: 1.Stream只能读或者写,但是Channel可以同时读写 2.Stream的读写是同步的, 阅读全文
posted @ 2020-05-17 15:13 __lay 阅读(371) 评论(0) 推荐(0)
摘要:所有文章 https://www.cnblogs.com/lay2017/p/12901123.html 正文 Java NIO包含了一下核心组件 1.channel:通道 2.buffer:缓冲区 3.selector:选择器 Java NIO软件包有很多类,但是最核心的就是这三种。所以本文重点关 阅读全文
posted @ 2020-05-16 17:25 __lay 阅读(244) 评论(0) 推荐(0)
摘要:所有文章 https://www.cnblogs.com/lay2017/p/12901123.html 正文 Java NIO(New IO)是Java1.4开始提供的,区别于1.4之前的BIO,提供了不同的工作机制。 本文包含了Java NIO的基本概念 通道(channel)和缓冲区(buff 阅读全文
posted @ 2020-05-16 17:07 __lay 阅读(367) 评论(0) 推荐(0)
摘要:在1.4以前Java的网络编程从BIO开始。jdk1.4开始,Java提供了NIO软件包,为高性能的网络编程提供了有力的帮助。 本教程共17篇,翻译自:http://tutorials.jenkov.com/java-nio/index.html 注意:这是原作者 Jakob Jenkov 于201 阅读全文
posted @ 2020-05-16 16:42 __lay 阅读(670) 评论(0) 推荐(0)