IO与NIO

java.io和java.nio

1、java.io中最为和兴的一个概念是流(Stream),面向流的编程。java中,一个流要么是输入流,要么是输出流,不可能同时既是输入流又是输出流。
2、java.nio中有三个核心概念:Selector,Channel,与Buffer。在java.nio中,我们是面向块(block)或是缓冲区(buffer)编程的。buffer本身就是一块内存,底层实现上。它实际上是个数组。数据的读、写都是通过Buffer来实现的。

除了数组之外,Buffer还提供了对于数据的结构化访问,并且可以追中带系统的读写过程。
Java中的8中原生数据类型都有各自的Buffer类型,比如:ByteBuffer,CharBuffer,IntBuffer;
Channel指的是可以向其写入数据或是从中读取数据的对象,它类似java.io中的Stream.所有数据的读写都是通过Buffer来进行的,不可能直接向Channel写入数据的情况或是直接从Channel读取数据的情况;与Stream不同的是,Channel是双向的,一个流可能是InputStream或是OutputStream,Channel打开后则可以进行读写操作。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1、阻塞与非阻塞 阻塞与非阻塞是描述进程在访问某个资源时,数据是否准备就绪的的一种处理方式。当数据没有准备就绪时:...
    林亚希阅读 93,702评论 8 59
  • IO流学习总结 一Java IO,硬骨头也能变软 (1) 按操作方式分类结构图: (2)按操作对象分类结构图 二j...
    绿叶悠阅读 3,723评论 0 0
  • Java NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java I...
    JackChen1024阅读 12,296评论 1 143
  • java.io包中最为核心的一个概念是流(Stream),面向流的编程。流分为两种输入流和输出流,Java中的io...
    东升的思考阅读 4,383评论 0 4
  • 1、Linux IO模型 《Unix网络编程》把I/O模型分成五类 阻塞式I/O模型:整个过程都是阻塞的——BIO...
    雪飘千里阅读 5,840评论 0 5

友情链接更多精彩内容