沟通非阻塞IO与阻塞IO - 输入流
来源:互联网 发布:淘宝网店转让qc41 编辑:程序博客网 时间:2024/05/01 08:41
import java.io.IOException;
import java.io.InputStream;
import java.nio.ByteBuffer;
import java.nio.channels.ReadableByteChannel;
public class ChannelInputStream extends InputStream {
private ReadableByteChannel channel;
public ChannelInputStream(ReadableByteChannel channel) throws IllegalArgumentException {
if (channel == null) {
throw new IllegalArgumentException("The readable byte channel is null");
}
this.channel = channel;
}
public int read() throws IOException {
ByteBuffer buffer = ByteBuffer.allocate(1);
int result = channel.read(buffer);
if (result != -1) {
buffer.flip();
result = (int) buffer.get();
buffer.clear();
}
return result;
}
public int read(byte b[]) throws IOException {
ByteBuffer buffer = ByteBuffer.allocate(b.length);
int result = channel.read(buffer);
if (result != -1) {
buffer.flip();
buffer.get(b, 0, result);
buffer.clear();
}
return result;
}
public int read(byte b[], int off, int len) throws IOException {
ByteBuffer buffer = ByteBuffer.allocate(b.length);
int result = channel.read(buffer);
if (result != -1) {
buffer.flip();
buffer.get(b, off, len > result ? result : len);
buffer.clear();
}
return result;
}
public void close() throws IOException {
channel.close();
}
}
- 沟通非阻塞IO与阻塞IO - 输入流
- 沟通非阻塞IO与阻塞IO - 出入流
- 阻塞Io与非阻塞Io
- 阻塞IO与非阻塞IO
- 阻塞IO与非阻塞IO
- io阻塞与io非阻塞转载
- io阻塞与io非阻塞之
- io阻塞与io非阻塞之
- io阻塞与io非阻塞
- io阻塞与io非阻塞
- Java阻塞IO与非阻塞IO
- Java阻塞IO与非阻塞IO
- Java阻塞IO与非阻塞IO
- Java阻塞IO与非阻塞IO
- 阻塞、非阻塞IO
- IO之阻塞与非阻塞比较
- 阻塞IO与非阻塞NIO
- IO之阻塞与非阻塞比较
- WinXP桌面壁纸 - 3 张
- 申请Blog成功
- 由汉化WordPress想到的——对一般文本性系统的通用汉化方法
- Effective STL 条款7
- 霍金自我挑战“黑洞悖论”
- 沟通非阻塞IO与阻塞IO - 输入流
- ONLY ENYA
- 沟通非阻塞IO与阻塞IO - 出入流
- 龙星计划:网格及对等分布式计算技术
- 用于判断字符结尾的输入流类
- 获得用户的帐号信息
- 用于判断字符结尾的输出流类
- S.O.S 的由来
- 只能谈情不能说爱