Java通道
通道(Channel
)是数据源和Java程序之间的开放连接,用于执行I/O
操作。Channel
接口在java.nio.channels
包中。通道(Channel
)接口只声明了两个方法:close()
和isOpen()
。
各种渠道
ReadableByteChannel
用于使用read()
方法将数据从数据源读取到字节缓冲区中。WritableByteChannel
用于使用write()
方法将数据从字节缓冲区写入数据宿。
ByteChannel
能够分别使用read()
和write()
方法读取和写入字节数据。ScatteringByteChannel
将数据从数据源读取到多个字节缓冲区中。 从已知的文件格式或类似的数据源读取数据是有用的,其中在一些固定长度的报头中提供数据,随后是可变长度的主体。
GatheringByteChannel
从多个字节缓冲区中写出数据。
创建通道
要获得一个通道,旧的方式使用java.io
包中的类I/O
来创建InputStream
和OutputStream
的对象。java.nio.channels
包中的Channels
类是一个实用程序类,它有许多静态方法将流转换为通道,反之亦然。
Channels
类还提供了将读写器转换为通道的方法,反之亦然。例如,如果有一个名为myInputStream
的输入流对象,获得一个ReadableByteChannel
如下:
1
|
ReadableByteChannel rbc = Channels.newChannel(myInputStream); |
如果有一个名为rbc
的ReadableByteChannel
,可以获得如下的基本InputStream
对象:
1
|
InputStream myInputStream = Channels.newInputStream(rbc); |
FileInputStream
和FileOutputStream
类有一个称为getChannel()
的新方法来返回一个FileChannel
对象。FileChannel
用于读取和写入数据到文件。从FileInputStream
获取的FileChannel
对象以只读模式打开。
最新文章
- 无限分页//////////////zz
- 16.10.17学到的Java知识
- ENVI数据显示操作【Tools菜单操作1】
- Python模块包中__init__.py文件的作用
- [AngularJS] Accessing Scope from The Console
- mongodb管理工具rockmongo
- 记一个JAVA关于日期的坑
- excel筛选两列值是否相同,如果相同返回第三列值
- lpc1768usb端点响应以及描述符定义
- 干货——基于Nop的精简版开发框架(附源码)
- dubbo扩展http协议后FullGC
- 红米Note 5A完美卡刷开发版获得ROOT超级权限的方法
- LDOOP设置关联后超出新起一页LinkNewPage
- Typora——安装Pandoc
- List 常用方法
- OC学习5——类和对象
- static 关键字介绍
- C++的开源跨平台日志库glog学习研究(三)--杂项
- 洛谷——P1907 设计道路
- Android之dip、dp、px、sp和屏幕密度