Updating existing JDK code to use InputStream.transferTo()

Pavel Rappo pavel.rappo at oracle.com
Wed May 13 21:58:42 UTC 2015


Remi,

> The other reason to have read that returns 0 is if the underlying channel is in non-blocking mode.
> A read on an InputStream created by Channels.newInputStream on a SelectableChannel may return 0
> and the code will go in a loop until the SelectableChannel can read something.
> while(read() > 0) avoid that issue.

It doesn't seem possible as far as I can see. We have 2 methods in
java.nio.channels.Channels:

   newInputStream(java.nio.channels.ReadableByteChannel)
   newInputStream(java.nio.channels.AsynchronousByteChannel)

Neither ReadableByteChannel nor AsynchronousByteChannel is SelectableChannel.

Sorry, I might be missing something. Anyway, it would be a misbehaving
InputStream as it doesn't conform to the spec.







More information about the core-libs-dev mailing list