LHA Library for Java

jp.gr.java_conf.dangan.io
Class GrowthByteBuffer

java.lang.Object
  extended by jp.gr.java_conf.dangan.io.GrowthByteBuffer

public class GrowthByteBuffer
extends java.lang.Object

自動的に伸張するバッファ。
RandomAccessFile の メモリ版として使用する。 ただし、あまり巨大なデータを取り扱うのには向かない。 スレッドセーフではない。 jdk1.4 以降の ByteBufferとは互換性が無い。

 -- revision history --
 $Log: GrowthByteBuffer.java,v $
 Revision 1.1  2002/12/05 00:00:00  dangan
 [maintenance]
     ソース整備

 Revision 1.0  2002/07/24 00:00:00  dangan
 add to version control
 [bug fix]
     grow() でバッファの増加量の計算が間違っていたのを修正。
 [change]
     読み込み限界に達した後の read( new byte[0] ) や 
     read( byte[] buf, int off, 0 ) の戻り値を
     InputStream と同じく 0 になるようにした
 [maintenance]
     ソース整備

 

Version:
$Revision: 1.1 $
Author:
$Author: dangan $

Constructor Summary
GrowthByteBuffer()
          サイズを自動で伸張するバッファを構築する。
バッファサイズにはデフォルト値が使用される。
GrowthByteBuffer(int BufferSize)
          サイズを自動で伸張するバッファを構築する。
 
Method Summary
 int length()
          現在の読みこみ限界を得る。
 int position()
          現在位置を得る。
 int read()
          現在位置から 1byteのデータを読みこむ。
 int read(byte[] buffer)
          現在位置から bufferを満たすようにデータを読み込む。
 int read(byte[] buffer, int index, int length)
          現在位置から buffer のindexへ lengthのデータを読み込む。
 void seek(int position)
          現在位置を設定する。 java.io.RandomAccessFileと同じく seek で読みこみ限界を超えた値を 設定した直後にはバッファは増加していない。 その後 write によって書きこんだ時にはじ めてバッファは増加する。
 void setLength(int length)
          読みこみ限界位置を設定する。
 void setPosition(int position)
          現在位置を設定する。 java.io.RandomAccessFileと同じく setPosition で読みこみ限界を超えた値を 設定した直後にはバッファは増加していない。 その後 write によって書きこんだ時にはじ めてバッファは増加する。
 void write(byte[] buffer)
          現在位置に buffer の内容を書きこむ。
 void write(byte[] buffer, int index, int length)
          現在位置に buffer の indexからlengthバイトの内容を書きこむ。
 void write(int data)
          現在位置に 1バイトのデータを書きこむ。
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GrowthByteBuffer

public GrowthByteBuffer()
サイズを自動で伸張するバッファを構築する。
バッファサイズにはデフォルト値が使用される。


GrowthByteBuffer

public GrowthByteBuffer(int BufferSize)
サイズを自動で伸張するバッファを構築する。

Parameters:
BufferSize - バッファのサイズ
Method Detail

write

public void write(int data)
現在位置に 1バイトのデータを書きこむ。

Parameters:
data - 1バイトのデータ

write

public void write(byte[] buffer)
現在位置に buffer の内容を書きこむ。

Parameters:
buffer - 書きこむデータほ格納されたバッファ

write

public void write(byte[] buffer,
                  int index,
                  int length)
現在位置に buffer の indexからlengthバイトの内容を書きこむ。

Parameters:
buffer - 書きこむデータほ格納されたバッファ
index - buffer内の書きこむデータの開始位置
length - 書きこむデータ量

read

public int read()
現在位置から 1byteのデータを読みこむ。

Returns:
読みこまれた1byteのデータ。
読みこみ限界を超えて読もうとした場合は -1

read

public int read(byte[] buffer)
現在位置から bufferを満たすようにデータを読み込む。

Parameters:
buffer - データを読み込むバッファ
Returns:
実際に読みこまれたデータ量
読みこみ限界を超えて読もうとした場合は -1

read

public int read(byte[] buffer,
                int index,
                int length)
現在位置から buffer のindexへ lengthのデータを読み込む。

Parameters:
buffer - データを読み込むバッファ
index - buffer内データ読みこみ位置
length - 読み込むデータの量
Returns:
実際に読みこまれたデータ量
読みこみ限界を超えて読もうとした場合は -1

length

public int length()
現在の読みこみ限界を得る。

Returns:
現在の読みこみ限界

setLength

public void setLength(int length)
読みこみ限界位置を設定する。

Parameters:
新しい読みこみ限界位置 -

position

public int position()
現在位置を得る。

Returns:
現在位置

setPosition

public void setPosition(int position)
現在位置を設定する。 java.io.RandomAccessFileと同じく setPosition で読みこみ限界を超えた値を 設定した直後にはバッファは増加していない。 その後 write によって書きこんだ時にはじ めてバッファは増加する。

Parameters:
position - 新しい現在位置

seek

public void seek(int position)
現在位置を設定する。 java.io.RandomAccessFileと同じく seek で読みこみ限界を超えた値を 設定した直後にはバッファは増加していない。 その後 write によって書きこんだ時にはじ めてバッファは増加する。

Parameters:
position - 新しい現在位置

LHA Library for Java

When you found typographical errors or omissions, Please mail to cqw10305@nifty.com
The company name and product name which are used in this document, it is the trademark or registered trademark of each company generally.
Copyright © 2001-2002 Michel Ishizuka. All Rights Reserved.