Am 02.03.2009 14:18, Alan Bateman schrieb:
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

I thought about something like:
FileChannel fc = new RandomAccessFile(getClass().getResource(name).toURI().getPath(), "r").getChannel();

... but this doesn't work, if resource is packed in jar file.

-Ulf


Reply via email to