org.apache.jackrabbit.core.data
Class LazyFileInputStream

java.lang.Object
  extended by java.io.InputStream
      extended by java.io.FilterInputStream
          extended by org.apache.commons.io.input.ProxyInputStream
              extended by org.apache.commons.io.input.AutoCloseInputStream
                  extended by org.apache.jackrabbit.core.data.LazyFileInputStream
All Implemented Interfaces:
Closeable

public class LazyFileInputStream
extends org.apache.commons.io.input.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.


Field Summary
protected  FileDescriptor fd
          The file descriptor to use.
protected  File file
          The file to read from.
protected  boolean opened
          True if the input stream was opened.
 
Fields inherited from class java.io.FilterInputStream
in
 
Constructor Summary
LazyFileInputStream(File file)
          Creates a new LazyFileInputStream for the given file.
LazyFileInputStream(FileDescriptor fd)
          Creates a new LazyFileInputStream for the given file descriptor.
LazyFileInputStream(String name)
          Creates a new LazyFileInputStream for the given file.
 
Method Summary
 int available()
           
 void close()
           
 void mark(int readlimit)
           
 boolean markSupported()
           
protected  void open()
          Open the stream if required.
 int read()
           
 int read(byte[] b)
           
 int read(byte[] b, int off, int len)
           
 void reset()
           
 long skip(long n)
           
 
Methods inherited from class org.apache.commons.io.input.AutoCloseInputStream
finalize
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

fd

protected final FileDescriptor fd
The file descriptor to use.


file

protected final File file
The file to read from.


opened

protected boolean opened
True if the input stream was opened. It is also set to true if the stream was closed without reading (to avoid opening the file after the stream was closed).

Constructor Detail

LazyFileInputStream

public LazyFileInputStream(File file)
                    throws FileNotFoundException
Creates a new LazyFileInputStream 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:
FileNotFoundException

LazyFileInputStream

public LazyFileInputStream(FileDescriptor fd)
Creates a new LazyFileInputStream for the given file descriptor. The file is not opened until the first byte is read from the stream.

Parameters:
fdObj -

LazyFileInputStream

public LazyFileInputStream(String name)
                    throws FileNotFoundException
Creates a new LazyFileInputStream for the given file. If the file is unreadable, a FileNotFoundException is thrown.

Parameters:
name -
Throws:
FileNotFoundException
Method Detail

open

protected void open()
             throws IOException
Open the stream if required.

Throws:
IOException

read

public int read()
         throws IOException
Overrides:
read in class org.apache.commons.io.input.AutoCloseInputStream
Throws:
IOException

available

public int available()
              throws IOException
Overrides:
available in class org.apache.commons.io.input.ProxyInputStream
Throws:
IOException

close

public void close()
           throws IOException
Specified by:
close in interface Closeable
Overrides:
close in class org.apache.commons.io.input.AutoCloseInputStream
Throws:
IOException

reset

public void reset()
           throws IOException
Overrides:
reset in class org.apache.commons.io.input.ProxyInputStream
Throws:
IOException

markSupported

public boolean markSupported()
Overrides:
markSupported in class org.apache.commons.io.input.ProxyInputStream

mark

public void mark(int readlimit)
Overrides:
mark in class org.apache.commons.io.input.ProxyInputStream

skip

public long skip(long n)
          throws IOException
Overrides:
skip in class org.apache.commons.io.input.ProxyInputStream
Throws:
IOException

read

public int read(byte[] b)
         throws IOException
Overrides:
read in class org.apache.commons.io.input.AutoCloseInputStream
Throws:
IOException

read

public int read(byte[] b,
                int off,
                int len)
         throws IOException
Overrides:
read in class org.apache.commons.io.input.AutoCloseInputStream
Throws:
IOException


Copyright © 2004-2010 The Apache Software Foundation. All Rights Reserved.