Java NIO
Java NIO翻译系列文章
大军001
但行好事,莫问前程
展开
-
吐槽NIO中的slip方法
在NIO中,如果不调用flip方法,NIO的Buffer就不会提供一个很清楚的方式去指定消息内容的开始位置和结束位置,如下代码所示:Buffer buffer = ...;buffer.flip();channel.write(buffer);(or buffer.get())如上,在从buffer中读取数据的时候如果没有调用flip方法,就会有不正确的数据发送,这样让人很困惑。(具体原创 2016-08-23 19:32:10 · 1157 阅读 · 0 评论 -
Java Nio 十六、Java NIO Files
最后更新:2015-04-15这个Java NIO的Files类(java.nio.file.Files)提供了数个方法中文件系统中操作文件。这个Java NIO的Files类教程将会覆盖这些方法的大部分通用方法的使用。这个类包含了许多的方法,所以也可以核对这个JavaDoc,如果你需要一个没有在这里描述的方法。这个Files类只是可能为了它仍然有一个方法。这个java.nio.file.翻译 2016-07-03 16:25:26 · 4024 阅读 · 4 评论 -
Java Nio 十五、Java NIO Path
最后更新时间:2015-03-12这个Java Path接口是中Java 6或者Java 7中Java NIO 2更新的一部分。这个Java Path接口中Java 7中被添加到了Java NIO中。这个Path接口被放置到了java.nio.file包中,以至于这个Java Path的完整定义名称是:java.nio.file.Path。一个Java Path实例显示了一个文件系统的路径翻译 2016-06-26 16:54:18 · 2244 阅读 · 0 评论 -
Java Nio 十四、Java NIO vs. IO
最后更新时间:2014-06-23翻译地址:http://tutorials.jenkov.com/java-nio/nio-vs-io.html翻译 2016-04-23 22:07:43 · 3121 阅读 · 0 评论 -
Java Nio 十三、Java NIO Pipe(管道)
最后更新时间:2014-06-23一个Java NIO管道是在两个线程之间的单向的数据连接。一个管道有一个源通道和一个下沉通道。你写数据到一个下沉的通道。这个数据然后从源通道中读取。这里有一个管道原则的示意图:创建一个管道你可以通过调用Pipe.open()方法打开一个管道,像下面这样:Pipe pipe = Pipe.open();写入一个管道为了写入一个管道翻译 2016-04-16 21:00:40 · 3438 阅读 · 0 评论 -
Java Nio 十二、Java NIO DatagramChannel(数据报通道)
最后更新时间:2014-06-23一个Java NIO数据报通道是一个可以发送和接收UDP包的通道。因为UDP是一个无连接的网络协议,你不能像其他的通道那样只是默认的读和写。代替的你发送和接收数据包。打开一个DatagramChannel这里是如何打开一个DatagramChannel:DatagramChannel channel = DatagramChannel.open()翻译 2016-04-10 21:39:08 · 2090 阅读 · 0 评论 -
Java Nio 十一、Java NIO:非堵塞服务器
最后更新时间:2015-10-23甚至如果你理解JAVA NIO的非堵塞特点的工作方式(Selector,Channel,Buffer等等),而设计一个非堵塞服务器也是难得。相对堵塞IO来说,非堵塞IO包含几个挑战。这个非堵塞服务器教程将会讨论非堵塞服务器的主要挑战,并且对于他们描述一些潜在的解决方案。关于设计一个非堵塞服务器发现一些好的信息是难得。因此在这个教程中提供的解决方案是基于我自翻译 2016-03-26 22:06:20 · 1383 阅读 · 0 评论 -
Java Nio 十、Java NIO ServerSocketChannel
最后更新时间:2014-06-25一个Java NIO的ServerSocketChannel是一个可以监听进来的TCP连接的通道,就像是在标准的Java 网络中的ServerSocket。这个ServerSocketChannel类位于java.nio.channels的包中。这里有一个例子:翻译地址:http://tutorials.jenkov.com/java-nio/翻译 2016-03-20 22:24:53 · 495 阅读 · 0 评论 -
Java Nio 九、Java NIO SocketChannel
最后更新时间:2014-06-25翻译地址:http://tutorials.jenkov.com/java-nio/socketchannel.html翻译 2016-03-05 18:34:21 · 565 阅读 · 0 评论 -
Java Nio 八、Java NIO FileChannel
最后更新时间:2014-06-25一个Java NIO FileChannel是一个连接到文件的通道。使用一个文件通道你可以从一个文件中读取数据,以及写数据到文件中。这个Java NIO FileChannel类同标准的Java IO API是一个可供选择的读文件操作。一个FileChannel不能设置为非堵塞模式。它总是运行在堵塞模式下。打开一个FileChannel在你使用一个翻译 2016-02-29 09:37:04 · 536 阅读 · 0 评论 -
Java Nio 七、Java NIO Selector
最后更新时间:2014-06-23一个Selector是一个Java NIO的组件,他可以检测一个或者多个NIO的通道,并且决定哪个通道准备好某些事件,例如读或者写。这种方式一个单独的线程就可以管理多个通道,以及多个网络连接。为什么使用Selector使用只是单线程去管理多个通道的优点就是你需要更少的线程去处理这些通道。实际上,你可以只是使用一个线程去处理所有的通道。线程切换对于操作系翻译 2016-01-17 17:05:26 · 505 阅读 · 0 评论 -
Java Nio 六、Java NIO通道到通道的传输
最后更新:2014-07-30翻译地址:http://tutorials.jenkov.com/java-nio/channel-to-channel-transfers.html翻译 2016-01-10 21:58:01 · 485 阅读 · 0 评论 -
Java Nio 五、分散/聚集
最后更新时间:2015-09-02Java NIO自带的内置分散/聚集支持。分散/聚集是使用在从channel中读,以及写channel的概念。从一个channel的一个分散读翻译 2016-01-03 20:36:25 · 1107 阅读 · 3 评论 -
Java Nio 四、Java NIO Buffer
最后更新时间:2014-06-23Java NIO Buffers当与NIO Channels相互作用的时候会被使用。正如你知道的,数据时从channels写到buffers,以及从buffers写入channels。一个buffer实际上是一块你可以写进数据的内存,这个你可以稍后再读取。这个内存块是用一个NIO buffer的对象包装成的,这个对象提供了许多方法,使得与内存块一起翻译 2015-12-19 22:00:28 · 624 阅读 · 3 评论 -
Java Nio 三、Java NIO Channel
最后更新时间:2014-06-23Java NIO Channels与流类似,也有一些不同之处:对于一个Channels,你可以同时读和写。而流是典型的一个方向的(读或者写)Channels可以异步的读写。Channels总是读到一个Buffer,或者从一个Buffer写。正如上面所提的,你读数据从一个channel读到bufffer,以及从一个buffer写数翻译 2015-12-13 17:50:28 · 760 阅读 · 2 评论 -
Java Nio 二、Java NIO综述
最后更新时间:2014-06-23Java NIO包含以下几个核心的组件:通道缓冲区选择器Java NIO除了那些有更多的类和组件,然而在我看来,通道,缓冲区,选择器组成了这个API的核心。翻译 2015-12-06 17:52:07 · 544 阅读 · 2 评论 -
Java Nio 一、Java NIO教程
最后更新时间:2014-06-25Java NIO(新IO)对于Java是一个交替、可供选择的IO API(从Java 1.4版本开始),意味着可替代标准Java IO和Java网络的API。Java NIO跟标准IO的API相比较是提供了一种使用IO工作的不同方式。Java NIO:通道和缓冲区在标准IO的API中,你使用字节流和字符流的方式工作。而在翻译 2015-12-05 22:55:47 · 669 阅读 · 2 评论