org.apache.hadoop.fs
Class BufferedFSInputStream

java.lang.Object
  extended by java.io.InputStream
      extended by java.io.FilterInputStream
          extended by java.io.BufferedInputStream
              extended by org.apache.hadoop.fs.BufferedFSInputStream
All Implemented Interfaces:
Closeable, HasFileDescriptor, PositionedReadable, Seekable

public class BufferedFSInputStream
extends BufferedInputStream
implements Seekable, PositionedReadable, HasFileDescriptor

A class optimizes reading from FSInputStream by bufferring


Field Summary
 
Fields inherited from class java.io.BufferedInputStream
buf, count, marklimit, markpos, pos
 
Fields inherited from class java.io.FilterInputStream
in
 
Constructor Summary
BufferedFSInputStream(FSInputStream in, int size)
          Creates a BufferedFSInputStream with the specified buffer size, and saves its argument, the input stream in, for later use.
 
Method Summary
 FileDescriptor getFileDescriptor()
           
 long getPos()
          Return the current offset from the start of the file
 int read(long position, byte[] buffer, int offset, int length)
          Read upto the specified number of bytes, from a given position within a file, and return the number of bytes read.
 void readFully(long position, byte[] buffer)
          Read number of bytes equalt to the length of the buffer, from a given position within a file.
 void readFully(long position, byte[] buffer, int offset, int length)
          Read the specified number of bytes, from a given position within a file.
 void seek(long pos)
          Seek to the given offset from the start of the file.
 boolean seekToNewSource(long targetPos)
          Seeks a different copy of the data.
 long skip(long n)
           
 
Methods inherited from class java.io.BufferedInputStream
available, close, mark, markSupported, read, read, reset
 
Methods inherited from class java.io.FilterInputStream
read
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BufferedFSInputStream

public BufferedFSInputStream(FSInputStream in,
                             int size)
Creates a BufferedFSInputStream with the specified buffer size, and saves its argument, the input stream in, for later use. An internal buffer array of length size is created and stored in buf.

Parameters:
in - the underlying input stream.
size - the buffer size.
Throws:
IllegalArgumentException - if size <= 0.
Method Detail

getPos

public long getPos()
            throws IOException
Description copied from interface: Seekable
Return the current offset from the start of the file

Specified by:
getPos in interface Seekable
Throws:
IOException

skip

public long skip(long n)
          throws IOException
Overrides:
skip in class BufferedInputStream
Throws:
IOException

seek

public void seek(long pos)
          throws IOException
Description copied from interface: Seekable
Seek to the given offset from the start of the file. The next read() will be from that location. Can't seek past the end of the file.

Specified by:
seek in interface Seekable
Throws:
IOException

seekToNewSource

public boolean seekToNewSource(long targetPos)
                        throws IOException
Description copied from interface: Seekable
Seeks a different copy of the data. Returns true if found a new source, false otherwise.

Specified by:
seekToNewSource in interface Seekable
Throws:
IOException

read

public int read(long position,
                byte[] buffer,
                int offset,
                int length)
         throws IOException
Description copied from interface: PositionedReadable
Read upto the specified number of bytes, from a given position within a file, and return the number of bytes read. This does not change the current offset of a file, and is thread-safe.

Specified by:
read in interface PositionedReadable
Throws:
IOException

readFully

public void readFully(long position,
                      byte[] buffer,
                      int offset,
                      int length)
               throws IOException
Description copied from interface: PositionedReadable
Read the specified number of bytes, from a given position within a file. This does not change the current offset of a file, and is thread-safe.

Specified by:
readFully in interface PositionedReadable
Throws:
IOException

readFully

public void readFully(long position,
                      byte[] buffer)
               throws IOException
Description copied from interface: PositionedReadable
Read number of bytes equalt to the length of the buffer, from a given position within a file. This does not change the current offset of a file, and is thread-safe.

Specified by:
readFully in interface PositionedReadable
Throws:
IOException

getFileDescriptor

public FileDescriptor getFileDescriptor()
                                 throws IOException
Specified by:
getFileDescriptor in interface HasFileDescriptor
Returns:
the FileDescriptor
Throws:
IOException


Copyright © 2009 The Apache Software Foundation