2

我想从 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()

4

2 回答 2

2

并非所有InputStreams 都保证是可选的,因此没有直接的方法可以做到这一点。不幸的是,CommPort该类没有返回 a 的方法SelectableChannel;没有简单的、可移植的方法来实现这一点(即,不完全破坏封装)。

于 2009-04-19T20:05:03.620 回答
1

蔚来在这方面被打破了。您所要做的就是查看一下代码并查看所有要求通道为 SocketChannel 等的强制转换。不可能像应有的那样将 NIO 中的任何内容重用于另一种基于文件描述符的 I/O 通道。

最后我问没有计划解决这个问题以进行通用重用。

于 2009-06-05T21:27:17.207 回答