ru.biosoft.util
Class SoftFileBuffer

java.lang.Object
  extended byru.biosoft.util.FileBuffer
      extended byru.biosoft.util.SoftFileBuffer

public class SoftFileBuffer
extends FileBuffer

Optimized by memory size implementation of FileBuffer interface. SoftFileBuffer provides buffered reading/writing of random access file Created buffers are based on SoftReference memory allocation.


Nested Class Summary
protected  class SoftFileBuffer.Buffer
           
 
Field Summary
protected static org.apache.log4j.Category cat
           
protected  java.io.RandomAccessFile randomFile
           
 
Constructor Summary
SoftFileBuffer(java.io.File file)
          Constructs the RandomAccessBuffer object using specified file .
SoftFileBuffer(java.io.File file, int sz)
          Constructs the RandomAccessBuffer object using specified file and size of buffer.
SoftFileBuffer(java.io.RandomAccessFile rndFile)
          Constructs the RandomAccessBuffer object using specified RandomAccessFile.
SoftFileBuffer(java.io.RandomAccessFile rndFile, int sz)
          Constructs the RandomAccessBuffer object.
 
Method Summary
 void close()
          Closes the buffer.
protected  void finalize()
          Closes random access file
 byte read(int pos)
          Reads one byte from requested position.
 void write(int pos, byte bt)
          Writes one byte to the requested position in the buffer.
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

cat

protected static org.apache.log4j.Category cat

randomFile

protected java.io.RandomAccessFile randomFile
Constructor Detail

SoftFileBuffer

public SoftFileBuffer(java.io.RandomAccessFile rndFile,
                      int sz)
               throws java.io.IOException
Constructs the RandomAccessBuffer object.
Creates two buffers by size sz
fills them with preceding reading

Parameters:
rndFile - random access file
sz - Size of one buffer.
Throws:
java.io.IOException - any I/O error

SoftFileBuffer

public SoftFileBuffer(java.io.RandomAccessFile rndFile)
               throws java.io.IOException
Constructs the RandomAccessBuffer object using specified RandomAccessFile.

Parameters:
rndFile - specified random access file.
Throws:
java.io.IOException - If any I/O error.

SoftFileBuffer

public SoftFileBuffer(java.io.File file,
                      int sz)
               throws java.io.IOException
Constructs the RandomAccessBuffer object using specified file and size of buffer.

Parameters:
file - specified file.
sz - size of each buffer
Throws:
java.io.IOException - If any I/O error.

SoftFileBuffer

public SoftFileBuffer(java.io.File file)
               throws java.io.IOException
Constructs the RandomAccessBuffer object using specified file .

Parameters:
file - specified file.
Throws:
java.io.IOException - If any I/O error.
Method Detail

read

public byte read(int pos)
          throws java.io.IOException
Reads one byte from requested position. If byte is already in any buffer then it returns. Otherwise one of two buffers is filled by new data from position pos minus half buffer size. Method selects buffer which more distant from specified position.

Specified by:
read in class FileBuffer
Parameters:
pos - position of requested byte
Returns:
requested byte
Throws:
java.io.IOException - If any I/O errors

write

public void write(int pos,
                  byte bt)
           throws java.io.IOException
Writes one byte to the requested position in the buffer. If specified position maps to any region in any of the two buffers the byte is stored into the buffer. Otherwise one of the two buffers is written into file and required portion of data is read from file back into buffer so it will satisfy the requested position. Method selects buffer which more distant from specified position.

Specified by:
write in class FileBuffer
Parameters:
pos - position of requested byte
bt - stored byte
Throws:
java.io.IOException - if any I/O errors

finalize

protected void finalize()
                 throws java.lang.Throwable
Closes random access file

Throws:
java.lang.Throwable

close

public void close()
           throws java.io.IOException
Closes the buffer.

Specified by:
close in class FileBuffer
Throws:
java.io.IOException - if an I/O error occurs.


Copyright © 2001-2003 Biosof.Ru. All Rights Reserved.