如何从InputStream获取SelectableChannel?

时间:2009-04-19 20:00:13

标签: java inputstream

我想从超时的java.io.InputStream中读取。显然,正确的方法是使用java.nio.channels.SelectableChannel和java.nio.channels.Selector。不幸的是,目前还不清楚如何从InputStream转到SelectableChannel。

InputStream来自非传统来源 - http://java.sun.com/products/javacomm/reference/api/javax/comm/CommPort.html#getInputStream()

2 个答案:

答案 0 :(得分:2)

并非所有InputStream都可以保证是可选的,因此没有直接的方法可以做到这一点。遗憾的是,CommPort类没有返回SelectableChannel的方法;没有简单,便携的方法来实现这一点(即,没有完全破坏封装)。

答案 1 :(得分:1)

NIO在这方面受到打击。您所要做的就是查看代码并查看所有需要通道为SocketChannel等的强制转换。不可能在NIO中重用任何类型的基于文件描述符的I / O通道,就像它应该的那样。

最后我问过没有计划为通用重用修复此问题。