java nio编程学习笔记(2)--channel
来源:互联网 发布:中国石油大学 知乎 编辑:程序博客网 时间:2024/06/06 00:10
Channel与流的区别:
1、Channel和Buffer之间的读写是双向的,流的读写是单向的
2、Channel可以异步读写
3、Channel的数据读写必须依赖于Buffer
这些是Java NIO中最重要的通道的实现:
- FileChannel
- DatagramChannel
- SocketChannel
- ServerSocketChannel
基本的 Channel 示例
下面是一个使用FileChannel读取数据到Buffer中的示例:
01
RandomAccessFile aFile =
new
RandomAccessFile(
"data/nio-data.txt"
,
"rw"
);
02
FileChannel inChannel = aFile.getChannel();
03
04
ByteBuffer buf = ByteBuffer.allocate(
48
);
05
06
int
bytesRead = inChannel.read(buf);
07
while
(bytesRead != -
1
) {
08
09
System.out.println(
"Read "
+ bytesRead);
10
buf.flip();
11
12
while
(buf.hasRemaining()){
13
System.out.print((
char
) buf.get());
14
}
15
16
buf.clear();
17
bytesRead = inChannel.read(buf);
18
}
19
aFile.close();
注意 buf.flip() 的调用,首先读取数据到Buffer,然后反转Buffer,接着再从Buffer中读取数据。下一节会深入讲解Buffer的更多细节。
0 0
- java nio编程学习笔记(2)--channel
- Java NIO笔记 Channel
- Java-NIO-Channel-笔记
- java学习-NIO(三)Channel
- Java NIO之Channel学习
- java NIO Channel 学习总结
- 《Java NIO》学习笔记三 通道(Channel)
- Java NIO编程实例之二Channel
- Java NIO学习5(通道Channel)
- Java NIO、NIO.2学习笔记
- Java NIO、NIO.2学习笔记
- 黑马程序员_O‘Reilly java nio学习笔记之通道_内存映射文件&&Channel-to-Channel 传输
- NIO,BIO,AIO,JAVA通讯编程学习笔记 2
- java nio编程学习笔记(3)--buffer
- java nio编程学习笔记(1)--初步了解nio
- Java nio 学习笔记(一) Buffer(缓冲区)与Channel(通道)的相关知识
- Java nio 学习笔记(一) Buffer(缓冲区)与Channel(通道)的相关知识
- Java nio 学习笔记(一) Buffer(缓冲区)与Channel(通道)的相关知识
- C++抽象编程——STL实战(5)——map在数据文件查找中的应用
- 埃氏筛法-素数个数>大数
- synchronized锁住的对象问题
- ascii gbk utf-8编码
- Spark 2.0.2 中文文档 | 片刻 ApacheCN(Apache中文网)
- java nio编程学习笔记(2)--channel
- win下与linux传文件方式
- Android之Activity的基本用法(AndroidMainfest、隐藏标题栏、Toast与menu)
- 无人驾驶的5个level concept
- R机器学习算法系列——KNN
- 开源好代码 音视频
- Java内存分区
- Tomcat单机多实例配置
- 光线追踪