calypso.util
Class RandomAccessFileWithByteLines

java.lang.Object
  |
  +--calypso.util.RandomAccessFileWithByteLines

public class RandomAccessFileWithByteLines
extends java.lang.Object


Field Summary
protected  byte[] fBuffer
           
protected  int fEnd
           
protected  java.io.RandomAccessFile fInput
           
protected  int fOffset
           
 
Constructor Summary
RandomAccessFileWithByteLines(java.io.RandomAccessFile f)
           
 
Method Summary
 boolean eatNewline()
          Eat up one newline if present in the fBuffer.
protected  boolean fill()
           
protected  boolean fillForCapacity(int capacity)
          Fill the fBuffer, keeping whatever is unread in the fBuffer and ensuring that "capacity" characters of total filled fBuffer space is available.
 long getFilePointer()
           
 void readFully(byte[] arr, int off, int length)
           
 boolean readLine(ByteBuf buf)
           
 void seek(long loc)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

fInput

protected java.io.RandomAccessFile fInput

fBuffer

protected byte[] fBuffer

fOffset

protected int fOffset

fEnd

protected int fEnd
Constructor Detail

RandomAccessFileWithByteLines

public RandomAccessFileWithByteLines(java.io.RandomAccessFile f)
Method Detail

readLine

public boolean readLine(ByteBuf buf)
                 throws java.io.IOException

eatNewline

public boolean eatNewline()
                   throws java.io.IOException
Eat up one newline if present in the fBuffer. If a newline was eaten up return true otherwise false. This will handle mac (\r), unix (\n) and windows (\r\n) style of newlines transparently.

getFilePointer

public long getFilePointer()
                    throws java.io.IOException

seek

public void seek(long loc)
          throws java.io.IOException

fill

protected boolean fill()
                throws java.io.IOException

fillForCapacity

protected boolean fillForCapacity(int capacity)
                           throws java.io.IOException
Fill the fBuffer, keeping whatever is unread in the fBuffer and ensuring that "capacity" characters of total filled fBuffer space is available. Return false if the final amount of data in the fBuffer is less than capacity, otherwise return true.

readFully

public void readFully(byte[] arr,
                      int off,
                      int length)
               throws java.io.IOException