Package org.apache.jackrabbit.core.data
Class LazyFileInputStream
- java.lang.Object
-
- java.io.InputStream
-
- java.io.FilterInputStream
-
- org.apache.commons.io.input.ProxyInputStream
-
- org.apache.commons.io.input.AutoCloseInputStream
-
- org.apache.jackrabbit.core.data.LazyFileInputStream
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
public class LazyFileInputStream extends AutoCloseInputStream
This input stream delays opening the file until the first byte is read, and closes and discards the underlying stream as soon as the end of input has been reached or when the stream is explicitly closed.
-
-
Constructor Summary
Constructors Constructor Description LazyFileInputStream(java.io.File file)
Creates a newLazyFileInputStream
for the given file.LazyFileInputStream(java.io.FileDescriptor fd)
Creates a newLazyFileInputStream
for the given file descriptor.LazyFileInputStream(java.lang.String name)
Creates a newLazyFileInputStream
for the given file.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
available()
Invokes the delegate'savailable()
method.void
close()
Closes the underlying input stream and replaces the reference to it with aClosedInputStream
instance.void
mark(int readlimit)
Invokes the delegate'smark(int)
method.boolean
markSupported()
Invokes the delegate'smarkSupported()
method.int
read()
Invokes the delegate'sread()
method.int
read(byte[] b)
Invokes the delegate'sread(byte[])
method.int
read(byte[] b, int off, int len)
Invokes the delegate'sread(byte[], int, int)
method.void
reset()
Invokes the delegate'sreset()
method.long
skip(long n)
Invokes the delegate'sskip(long)
method.
-
-
-
Constructor Detail
-
LazyFileInputStream
public LazyFileInputStream(java.io.File file) throws java.io.FileNotFoundException
Creates a newLazyFileInputStream
for the given file. If the file is unreadable, a FileNotFoundException is thrown. The file is not opened until the first byte is read from the stream.- Parameters:
file
- the file- Throws:
java.io.FileNotFoundException
-
LazyFileInputStream
public LazyFileInputStream(java.io.FileDescriptor fd)
Creates a newLazyFileInputStream
for the given file descriptor. The file is not opened until the first byte is read from the stream.- Parameters:
fd
-
-
LazyFileInputStream
public LazyFileInputStream(java.lang.String name) throws java.io.FileNotFoundException
Creates a newLazyFileInputStream
for the given file. If the file is unreadable, a FileNotFoundException is thrown.- Parameters:
name
-- Throws:
java.io.FileNotFoundException
-
-
Method Detail
-
read
public int read() throws java.io.IOException
Description copied from class:ProxyInputStream
Invokes the delegate'sread()
method.- Overrides:
read
in classProxyInputStream
- Returns:
- the byte read or -1 if the end of stream
- Throws:
java.io.IOException
- if an I/O error occurs.
-
available
public int available() throws java.io.IOException
Description copied from class:ProxyInputStream
Invokes the delegate'savailable()
method.- Overrides:
available
in classProxyInputStream
- Returns:
- the number of available bytes
- Throws:
java.io.IOException
- if an I/O error occurs.
-
close
public void close() throws java.io.IOException
Description copied from class:AutoCloseInputStream
Closes the underlying input stream and replaces the reference to it with aClosedInputStream
instance.This method is automatically called by the read methods when the end of input has been reached.
Note that it is safe to call this method any number of times. The original underlying input stream is closed and discarded only once when this method is first called.
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Overrides:
close
in classAutoCloseInputStream
- Throws:
java.io.IOException
- if the underlying input stream can not be closed
-
reset
public void reset() throws java.io.IOException
Description copied from class:ProxyInputStream
Invokes the delegate'sreset()
method.- Overrides:
reset
in classProxyInputStream
- Throws:
java.io.IOException
- if an I/O error occurs.
-
markSupported
public boolean markSupported()
Description copied from class:ProxyInputStream
Invokes the delegate'smarkSupported()
method.- Overrides:
markSupported
in classProxyInputStream
- Returns:
- true if mark is supported, otherwise false
-
mark
public void mark(int readlimit)
Description copied from class:ProxyInputStream
Invokes the delegate'smark(int)
method.- Overrides:
mark
in classProxyInputStream
- Parameters:
readlimit
- read ahead limit
-
skip
public long skip(long n) throws java.io.IOException
Description copied from class:ProxyInputStream
Invokes the delegate'sskip(long)
method.- Overrides:
skip
in classProxyInputStream
- Parameters:
n
- the number of bytes to skip- Returns:
- the actual number of bytes skipped
- Throws:
java.io.IOException
- if an I/O error occurs.
-
read
public int read(byte[] b) throws java.io.IOException
Description copied from class:ProxyInputStream
Invokes the delegate'sread(byte[])
method.- Overrides:
read
in classProxyInputStream
- Parameters:
b
- the buffer to read the bytes into- Returns:
- the number of bytes read or EOF if the end of stream
- Throws:
java.io.IOException
- if an I/O error occurs.
-
read
public int read(byte[] b, int off, int len) throws java.io.IOException
Description copied from class:ProxyInputStream
Invokes the delegate'sread(byte[], int, int)
method.- Overrides:
read
in classProxyInputStream
- Parameters:
b
- the buffer to read the bytes intooff
- The start offsetlen
- The number of bytes to read- Returns:
- the number of bytes read or -1 if the end of stream
- Throws:
java.io.IOException
- if an I/O error occurs.
-
-