what's the point of java.nio?

David Daney ddaney@avtrex.com
Mon May 31 07:24:00 GMT 2004


Adam Megacz wrote:
>Er, I must be a dunce or something. I've read through all the nio
>introductions I can find, and I still can't figure out why Sun
>introduced an entire package instead of two methods:
>> static InputStream InputStream.select(InputStream[])
> static boolean Socket.nonBlockingConnect()
>>It looks like given these two functions I could implement all of
>java.nio on top of java.io. And the converse (io on nio) is certainly
>true (libgcj does it).
>>So the only conclusion I'm left with is that it's somehow easier to
>implement the native method support for nio more efficiently, but I
>can't see how that is the case.
>>Can anybody clue me in?
>>InputStream was an existing class. If you change it you have to do it 
in a manner that ALL existing programs would continue to work. It would 
also be best if ALL existing InputStream subclasses behaved properly 
under your new select() method.
You never say what select() on a FileInputStream would do. How about 
select() on a ByteArrayInputStream or PipedInputStream? How would you 
even implement select() on a PipedInputStream? I like non-blocking 
output too, what would you do for that.
You would also have to add methods to make InputStreams blocking and 
non-blocking. These of course would have to be backwards compatible 
with ALL existing code.
Seems like a tall order, but maybe I am missing something.
David Daney


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /