Java NIO和流类似但有些差异:
·通道可以读写,而流只支持一种方式,读或者写
·通道可以异步读写
·通道读写,都是和Buffer交互通道的实现以下是Java NIO中最重要的通道的实现:
·FileChannel
·DatagramChannel
·SocketChannel
·ServerSocketChannelFileChannel从文件读数据或写进文件
Datagram...
分类:
编程语言 时间:
2015-03-15 19:52:52
阅读次数:
143
Java NIO主要有以下核心组件构成:
通道
缓存
选择器
Java NIO其实有比上面更多的类和组件,但是在我看来,Channel,Buffer,Selector是核心的API。其它组件,像管道和文件锁,仅仅只是在与三大核心组件结合使用时的通用工具类。
通道和缓存一般来说,NIO中的所有IO都是从通道开始的。通道就像一个流,数据可以从通道中读到一个缓存里去,同样,数据可以从缓存写进通道里...
分类:
编程语言 时间:
2015-03-14 20:07:31
阅读次数:
130
1.Channelchannel 是负责数据读,写的对象,有点类似于老的io里面的stream。它和stream的区别,channel是双向的,既可以write 也可以read,而stream要分outstream和inputstream。而且在NIO中用户不应该直接从channel中读写数据,而是...
分类:
Web程序 时间:
2015-03-13 23:42:32
阅读次数:
207
Netty是Java NIO之上的网络库(API)。Netty 提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。我构建了一个Netty项目模板:avro-channel。目的是结合Netty和Avro实现异步数据传输和RPC(远程过程调用)。...
分类:
Web程序 时间:
2015-03-13 12:42:47
阅读次数:
227
Java NIO非堵塞应用通常适用用在I/O读写等方面,我们知道,系统运行的性能瓶颈通常在I/O读写,包括对端口和文件的操作上,过去,在打开一个I/O通道后,read()将一直等待在端口一边读取字节内容,如果没有内容进来,read()也是傻傻的等,这会影响我们程序继续做其他事情,那么改进做法就是开设...
分类:
编程语言 时间:
2015-03-13 01:36:32
阅读次数:
146
Scalable IO in Javahttp://gee.cs.oswego.edu/dl/cpjslides/nio.pdf基本上所有的网络处理程序都有以下基本的处理过程:Read requestDecode requestProcess serviceEncode replySend repl...
分类:
编程语言 时间:
2015-03-11 23:10:29
阅读次数:
290
package com.du20150311Files;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.nio.charset.Charset;imp...
分类:
编程语言 时间:
2015-03-11 18:59:50
阅读次数:
149
要使业务系统无极缩放,微服务架构方兴未艾。本质上,就是采用API(例如REST) 封装服务调用,形成服务框架。
既然是分布式API调用,必然涉及到网络IO常见的三种方式:
1) BIO:Blocking IO,阻塞方式,一个socket用一个线程处理
2) NIO: Non-blocking IO,事件驱动,采用reactor模式,一个线程中处理多个socket,JDK1.4以上版本支持
3) AIO:Asynchronous IO,异步,采用Proactor模式,NIO在有通知时可以进行相关操作,...
分类:
其他好文 时间:
2015-03-11 08:11:41
阅读次数:
197
最近由于工作关系要做一些Java方面的开发,其中最重要的一块就是Java NIO(New I/O),尽管很早以前了解过一些,但并没有认真去看过它的实现原理,也没有机会在工作中使用,这次也好重新研究一下,顺便写点东西,就当是自己学习 Java NIO的笔记了。本文为NIO使用及原理分析的第一篇,将会介...
分类:
编程语言 时间:
2015-03-10 16:41:27
阅读次数:
253
今天碰到了一个问题,从游戏服务器下载下来的输出log有一个多G大。用记事本打不开,EditPlus也打不开,都提示文件太大。用word也打不开,提示文件大于512M。打不开怎么查找错误啊。于是他问我解决办法。我想了想,决定写一个简单的程序读取这个log,把这个log切分成一些小的可以用Editplu...
分类:
其他好文 时间:
2015-03-09 23:42:30
阅读次数:
165