通道(Channel)是数据源和Java程序之间的开放连接,用于执行I/O操作。Channel接口在java.nio.channels包中。通道(Channel)接口只声明了两个方法:close()isOpen()

各种渠道

ReadableByteChannel用于使用read()方法将数据从数据源读取到字节缓冲区中。WritableByteChannel用于使用write()方法将数据从字节缓冲区写入数据宿。

ByteChannel能够分别使用read()write()方法读取和写入字节数据。ScatteringByteChannel将数据从数据源读取到多个字节缓冲区中。 从已知的文件格式或类似的数据源读取数据是有用的,其中在一些固定长度的报头中提供数据,随后是可变长度的主体。

GatheringByteChannel从多个字节缓冲区中写出数据。

创建通道

要获得一个通道,旧的方式使用java.io包中的类I/O来创建InputStreamOutputStream的对象。
java.nio.channels包中的Channels类是一个实用程序类,它有许多静态方法将流转换为通道,反之亦然。

Channels类还提供了将读写器转换为通道的方法,反之亦然。例如,如果有一个名为myInputStream的输入流对象,获得一个ReadableByteChannel如下:

1
ReadableByteChannel rbc  = Channels.newChannel(myInputStream);

如果有一个名为rbcReadableByteChannel,可以获得如下的基本InputStream对象:

1
InputStream myInputStream  = Channels.newInputStream(rbc);

FileInputStreamFileOutputStream类有一个称为getChannel()的新方法来返回一个FileChannel对象。FileChannel用于读取和写入数据到文件。从FileInputStream获取的FileChannel对象以只读模式打开。

最新文章

  1. 无限分页//////////////zz
  2. 16.10.17学到的Java知识
  3. ENVI数据显示操作【Tools菜单操作1】
  4. Python模块包中__init__.py文件的作用
  5. [AngularJS] Accessing Scope from The Console
  6. mongodb管理工具rockmongo
  7. 记一个JAVA关于日期的坑
  8. excel筛选两列值是否相同,如果相同返回第三列值
  9. lpc1768usb端点响应以及描述符定义
  10. 干货——基于Nop的精简版开发框架(附源码)
  11. dubbo扩展http协议后FullGC
  12. 红米Note 5A完美卡刷开发版获得ROOT超级权限的方法
  13. LDOOP设置关联后超出新起一页LinkNewPage
  14. Typora——安装Pandoc
  15. List 常用方法
  16. OC学习5——类和对象
  17. static 关键字介绍
  18. C++的开源跨平台日志库glog学习研究(三)--杂项
  19. 洛谷——P1907 设计道路
  20. Android之dip、dp、px、sp和屏幕密度

热门文章

  1. 93、R语言教程详解
  2. Nginx网络架构实战学习笔记(六):服务器集群搭建、集群性能测试
  3. Ubuntu16.04搜狗拼音输入法候选栏无法显示中文(英文乱码)
  4. 04、python的基础-->列表跟元组
  5. php token的生成和使用
  6. JavaScript去除数组中重复的数字
  7. redis 入门之列表
  8. 进程之间的通信AIDL
  9. jquery.cookie.js实现cookie记住用户名和密码
  10. scss定义全局变量引入sass-resources-loader报错