当前位置:首页 > 开发 > 编程语言 > Java IO > 正文

Java NIO与IO

发表于: 2015-05-12   作者:cfyme   来源:转载   浏览次数:
摘要: Java NIO和IO的主要区别 下表总结了Java NIO和IO之间的主要差别,我会更详细地描述表中每部分的差异。 IO                NIO 面向流            面向缓冲 阻塞IO      

Java NIO和IO的主要区别

下表总结了Java NIO和IO之间的主要差别,我会更详细地描述表中每部分的差异。

IO                NIO
面向流            面向缓冲
阻塞IO            非阻塞IO
无                选择器

 

  1. 面向流与面向缓冲
    IO是面向流的,使用者从流中将数据读取出来,缓存在其它地方后才能使用;而NIO面向缓冲区,数据的读写通过缓冲区来进行,可以在缓冲区中前后移动,增加了处理过程中的灵活性,当然也会导致更复杂的检查。
  2. 阻塞与非阻塞IO
    IO是阻塞的,一个线程中调用read()或者write()时不能做其他的事情;而NIO的非阻塞模式可以将空余时间用来做其他事情,一个线程中可以管理多个输入输出通道。
  3. 选择器
    NIO选择器允许在一个线程中件数多个输入通道,使得多输入情况下的处理非常简单。

由于非阻塞和选择器的使用,NIO在处理大量连接时更加高效和便利,但是由于缓冲数据读写的不确定性,对单份数据的解析则较为麻烦;因此如果需要管理同时打开的大量连接,这些连接每次发送的数据不多(聊天服务器,P2P网络等),使用NIO更有优势;而连接较少却发送较多数据或者数据需要逐步解析时,使用IO则更为方便。

转载:http://ifeve.com/java-nio-vs-io/

Java NIO与IO

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

我来说两句
评论内容:
验  证  码:
 
(网友评论仅供其表达个人看法,并不表明本站同意其观点或证实其描述。)
评论列表
已有 0 条评论(查看更多评论)
编辑推荐
当学习了Java NIO和IO的API后,一个问题马上涌入脑海: 我应该何时使用IO,何时使用NIO呢?在本文中
当学习了Java NIO和IO的API后,一个问题马上涌入脑海: 我应该何时使用IO,何时使用NIO呢?在本文中
当学习了Java NIO和IO的API后,一个问题马上涌入脑海: 我应该何时使用IO,何时使用NIO呢?在本文中
1. 基本 概念 IO 是主存和外部设备 ( 硬盘、终端和网络等 ) 拷贝数据的过程。 IO 是操作系统的底层
下表总结了Java NIO和IO之间的主要差别,我会更详细地描述表中每部分的差异。 复制代码 代码如下: I
(这一个章节将讲到Java里面比较重要的一个章节,这里说一句抱歉,因为最近换工作的原因,一直没有
输入/输出:概念性描述 I/O 简介 I/O ? 或者输入/输出 ? 指的是计算机与外部世界或者一个程序与计算
当学习java NIO和IO API时,大脑中会很快涌现一个问题: 什么时候用IO?什么时候用NIO? 这篇文章作者
所谓NIO 就是 NewIO ,因为原来的IO又叫OIO。 首先讲一下OIO。 在这里通过代码讲解可能更容易理解一
Java NIO 和 IO的区别 Java I/O I/O,即 Input/Output(输入/输出) 的简称。就 I/O 而言,概念上有 5
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号