jp.gr.java_conf.dangan.io

Class GrowthByteBuffer


public class GrowthByteBuffer
extends 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バイトのデータを書きこむ。

Constructor Details

GrowthByteBuffer

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

GrowthByteBuffer

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

Method Details

length

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

position

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

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

seek

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

setLength

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

setPosition

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

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 - 書きこむデータ量

write

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

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.