How to get FileChannel from resource

Alan Bateman Alan.Bateman at Sun.COM
Mon Mar 2 13:18:31 UTC 2009


Ulf Zibis wrote:
> Sherman, yes, you are right. That's not what I'm looking for.
>
> This would be slower, than reading the stream directly, because the 
> underlying byte array will be copied 2 times by 
> BufferedInputStream#<init> + Channels.ReadableByteChannelImpl#read(),
> ... but maybe not, because looping BufferedInputStream#readChar() 
> could be slower than twice System.arraycopy().
>
> Anyway, I'm looking for a DirectBuffer directly from a resource file.
> So I think there is something missing:
> URL.openChannel() or Class#getResourceAsChannel()
>
> Maybe there is a way to get a RamdomAccessFile from URL to get the 
> Channel from. Anybody knows ?
A URL just identifies an abstract resource so it may not support random 
access or other file-like operations you require. Have you thought about 
special handling for when the scheme is "file"? That way you can get the 
FileChannel you want for the typical case.

-Alan



More information about the core-libs-dev mailing list