Package loci.common
Class URLHandle
java.lang.Object
loci.common.StreamHandle
loci.common.URLHandle
- All Implemented Interfaces:
java.io.DataInput
,java.io.DataOutput
,IRandomAccess
public class URLHandle extends StreamHandle
Provides random access to URLs using the IRandomAccess interface.
Instances of URLHandle are read-only.
- Author:
- Melissa Linkert melissa at glencoesoftware.com
- See Also:
IRandomAccess
,StreamHandle
,URLConnection
-
Nested Class Summary
-
Field Summary
-
Constructor Summary
Constructors Constructor Description URLHandle(java.lang.String url)
Constructs a new URLHandle using the given URL. -
Method Summary
Modifier and Type Method Description protected void
resetStream()
Close and reopen the stream; the stream pointer and mark should be reset to 0.void
seek(long pos)
Sets the stream pointer offset, measured from the beginning of this stream, at which the next read or write occurs.Methods inherited from class loci.common.StreamHandle
close, exists, getFilePointer, getOrder, length, read, read, read, read, readBoolean, readByte, readChar, readDouble, readFloat, readFully, readFully, readInt, readLine, readLong, readShort, readUnsignedByte, readUnsignedShort, readUTF, setOrder, skipBytes, skipBytes, write, write, write, write, write, writeBoolean, writeByte, writeBytes, writeChar, writeChars, writeDouble, writeFloat, writeInt, writeLong, writeShort, writeUTF
-
Constructor Details
-
URLHandle
public URLHandle(java.lang.String url) throws java.io.IOExceptionConstructs a new URLHandle using the given URL.- Parameters:
url
- the fully qualified URL path- Throws:
java.io.IOException
- if the URL is invalid or unreadable
-
-
Method Details
-
seek
public void seek(long pos) throws java.io.IOExceptionDescription copied from interface:IRandomAccess
Sets the stream pointer offset, measured from the beginning of this stream, at which the next read or write occurs.- Specified by:
seek
in interfaceIRandomAccess
- Overrides:
seek
in classStreamHandle
- Parameters:
pos
- new byte offset (pointer) in the current stream. Unless otherwise noted, may be larger or smaller than the current pointer, but must be non-negative and less than the value of #length()- Throws:
java.io.IOException
- ifpos
is invalid or the seek fails- See Also:
IRandomAccess.getFilePointer()
-
resetStream
protected void resetStream() throws java.io.IOExceptionDescription copied from class:StreamHandle
Close and reopen the stream; the stream pointer and mark should be reset to 0. This method is called if we need to seek backwards within the stream.- Specified by:
resetStream
in classStreamHandle
- Throws:
java.io.IOException
- if the stream cannot be reset
-