self から t タイプのオブジェクトを n まで読み取ります。
out: オブジェクトを受け取る Array。null (既定値) の場合は、新しい Array が割り当てられて返されます。
start: オブジェクトはこのパラメータが指定するスロットから out に書き込まれます。
n: 読み取られるオブジェクトの最大数。
allow-short-read?: この呼び出しが n 未満の数を返すか、データのストリーム全体を返すかを示します。既定は false です。ほとんどのストリームではサポートされていませんが、サポートされていない場合でもエラーや例外は発生しません。予想されるデータ量が事前に明らかでなく、追加のデータを待機するべきではないネットワーキングのような状況でこれを使用します。
non-blocking?: 呼び出しの非ブロッキング実行、つまり直ちに使用できるデータがない場合にデータを読み込まずにすぐに返すかどうかを示します。既定は false です。これが true の場合は、allow-short-read? は暗黙的に true になります。
戻り値
結果を受け取った {Array-of t} および受け取った結果の数を返します。out を指定するとそれが返されます。それ以外の場合、このメソッドは新規の {Array-of t} を割り当ててそれを返します。
2 つ目の戻り値が -1 の場合、ストリームが EOF であることを示します。その場合、データは読み込まれていません。さらに non-blocking? が true の場合、戻り値が 0 になる可能性があり、これはすぐに使用できるデータがないことを示します。
説明
allow-short-read? または non-blocking? が true でない限り、このメソッドは n 要素が読み取られるか、ストリームが EOF になるまで返されません。この場合、準備が完了しているデータ量を返します (ただし、allow-short-read? だけが true の場合は少なくとも 1 つが返されます)。
non-blocking? が true でない限り、self がまだ開いていて、使用できるデータがない場合にはこのメソッドはブロックします。
注意事項
self が現在開いていない場合はエラーが発生します。
start < 0 or n < 0 の場合はエラーが発生します。
self から最初の要素を取得します。
戻り値
最初の戻り値は self の入力ストリームから取得したアイテムになります。ストリームが EOF の場合、2 番目の戻り値は true になります。その場合、最初の戻り値は null または 0 になります。
説明
self がまだ開いていて、使用できるデータがない場合にはこのメソッドはブロックします。
注意事項
現在 self が開いてなく読み込み可能でない場合はエラーになります。
オーバーライド
非抽象サブクラスにより実装される必要があります。実装では次のようなコードを含める必要があリます。
{if not self.open? then
{throw {new IOException, {format "%s not open", self}}}
}
このメソッドの実装の上部に記述します。