开发者社区> 问答> 正文

Java 新IO中的两个核心对象是啥?

Java 新IO中的两个核心对象是啥?

展开
收起
小天使爱美 2020-04-12 11:32:02 917 0
1 条回答
写回答
取消 提交回答
  • Channel(通道)和Buffer(缓冲)是新IO中的两个核心对象,Channel是对传统的输入/输出系统的模拟,在新IO系统中所有的数据都需要通过通道传输;Channel与传统的InputStream、OutputStream最大的区别在于它提供了一个map()方法,通过该map()方法可以直接将“一块数据”映射到内存中。如果说传统的输入/输出系统是面向流的处理,则新IO则是面向块的处理。Buffer可以被理解成一个容器,它的本质是一个数组,发送到Channel中的所有对象都必须首先放到Buffer中,而从Channel中读取的数据也必须先放到Buffer中。此处的Buffer有点类似于前面介绍的“竹筒”,但该Buffer既可以像“竹筒”那样一次次去Channel中取水,也允许使用Channel直接将文件的某块数据映射成Buffer。

    2020-04-12 11:37:02
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
多IO线程优化版 立即下载