java NIO(non-blocking I/O) 非阻塞式io
来源:互联网 发布:网络兼职被骗怎么办 编辑:程序博客网 时间:2024/05/18 01:12
1.为所有的原始类型(boolean类型除外)提供缓存支持的数据容器,使用它可以提供非阻塞式的高伸缩性网络。
2.通道与流的不同之处在于通道是双向的。
3.因为它们是双向的,所以通道可以比流更好地反映底层操作系统的真实情况。特别是在 UNIX 模型中,底层操作系统通道是双向的。
4.flip():Buffer有两种模式,写模式和读模式。在写模式下调用flip()之后,Buffer从写模式变成读模式(指针position从当前数据位置变为初始位置0)
二:实例代码
1.传统IO :
public static void method2(){
InputStream in = null;
try{
in = new BufferedInputStream(new FileInputStream("src/nomal_io.txt"));
byte [] buf = new byte[1024];
int bytesRead = in.read(buf);
while(bytesRead != -1)
{
for(int i=0;i<bytesRead;i++)
System.out.print((char)buf[i]);
bytesRead = in.read(buf);
}
}catch (IOException e)
{
e.printStackTrace();
}finally{
try{
if(in != null){
in.close();
}
}catch (IOException e){
e.printStackTrace();
}
}
}
2.NIO :
public static void method1(){
RandomAccessFile aFile = null;
try{
aFile = new RandomAccessFile("src/nio.txt","rw");
FileChannel fileChannel = aFile.getChannel();
ByteBuffer buf = ByteBuffer.allocate(1024);
int bytesRead = fileChannel.read(buf);
System.out.println(bytesRead);
while(bytesRead != -1)
{
buf.flip();
while(buf.hasRemaining())
{
System.out.print((char)buf.get());
}
buf.compact();
bytesRead = fileChannel.read(buf);
}
}catch (IOException e){
e.printStackTrace();
}finally{
try{
if(aFile != null){
aFile.close();
}
}catch (IOException e){
e.printStackTrace();
}
}
}
- java NIO(non-blocking I/O) 非阻塞式io
- JAVA NIO: 非阻塞(Non-blocking)服务器设计
- Java NIO(Non-blocking IO)
- Synchronous/Asynchronous/Blocking/Non-blocking I/O
- 非阻塞I/O–Java NIO教程
- 同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO
- Java NIO-I/O模型: 阻塞、非阻塞、I/O复用、同步、异步
- 关于Blocking IO, Non-Blocking IO 和 Asynchronous I/O的理解
- 关于Blocking IO, Non-Blocking IO 和 Asynchronous I/O的理解
- 关于Blocking IO, Non-Blocking IO 和 Asynchronous I/O的理解
- Compare Asynchronous I/O (AIO) with Non-blocking synchronous I/O (NIO)
- NIO非阻塞式I/O通信说明
- [Java IO]Java 平台非阻塞 I/O JDK1.4
- 知识点NIO-非阻塞I/O(转)
- Java NIO: Non-blocking Server
- Java NIO: Non-blocking Server
- Java NIO: Non-blocking Server
- Application和四大组件、NIO(non-blocking IO 非阻塞线程的IO) 以及Android Studio恢复(误删除文件或文件夹)
- 使用Android Studio 3.0让开源App的源码项目运行起来
- linux nand bbt 坏块管理部分(转
- JAVA用户注册登录使用MD5非对称加密解密
- 根据ID集合查询符合某种类型的用户信息,并按其他类型分类
- ECharts学习篇一
- java NIO(non-blocking I/O) 非阻塞式io
- Unity 使用Unirx网络库进行文件下载
- 小游戏制作2
- html页面之间的数据传递
- 初识Hadoop之Hadoop单机版搭建
- Contruct 2制作的HTML5游戏的简单介绍
- LeetCode Exercise 10: Merge Intervals
- 语义分析-哈工大编译原理第三次实验
- 关于重载new delete new[] delete[]笔记----C++学习之路