io和nio和aio io和nio的区别


io和nio和aio io和nio的区别

文章插图
io和nio的区别如下:
1、NIO的创建目的是为了让Java程序员可以实现高速I/O而无需编写自定义的本机代码 。NIO将最耗时的I/O操作(即填充和提取缓冲区)转移回操作系统,因而可以极大地提高速度 。传统的IO操作属于阻塞型,严重影响程序的运行速度 。
【io和nio和aio io和nio的区别】
2、流与块的比较 。原来的I/O库(在java.io.*中)与NIO最重要的区别是数据打包和传输的方式 。正如前面提到的,原来的I/O以流的方式处理数据,而NIO以块的方式处理数据 。面向流的I/O系统一次一个字节地处理数据 。一个输入流产生一个字节的数据,一个输出流消费一个字节的数据 。为流式数据创建过滤器非常容易 。链接几个过滤器,以便每个过滤器只负责单个复杂处理机制的一部分,这样也是相对简单的 。不利的一面是,面向流的I/O通常相当慢 。
3、一个面向块的I/O系统以块的形式处理数据 。每一个操作都在一步中产生或者消费一个数据块 。按块处理数据比按(流式的)字节处理数据要快得多 。但是面向块的I/O缺少一些面向流的I/O所具有的优雅性和简单性 。