(クラス)
コンストラクタ public | {TranscodingTextInputStream.default stream:ByteInputStream,close-stream-on-close?:bool = true,buffer-size:int = {calculate-instances-per-memory-size
default-buffer-memory-size, char
},unread-size:int = {max {min 4, buffer-size div 4}, 1},character-encoding:CharEncoding = CharEncoding.none-specified,save-bytes-for-character-encoding-reset?:bool = false } |
フィールド protected constant TranscodingTextInputStream._bytes:#
ByteArray
フィールド protected TranscodingTextInputStream._bytes-valid-end:
int
フィールド protected TranscodingTextInputStream._bytes-valid-start:
int
フィールド protected TranscodingTextInputStream._character-encoding:
CharEncoding
フィールド protected TranscodingTextInputStream._not-at-stream-start?:
bool
アクセサ public TranscodingTextInputStream.character-encoding:
CharEncoding
アクセサ protected inline TranscodingTextInputStream.fill-data-allow-short-read-supported?:
bool
アクセサ protected TranscodingTextInputStream.fill-data-non-blocking-supported?:
bool
アクセサ public TranscodingTextInputStream.open?:
bool
アクセサ public TranscodingTextInputStream.origin-url:#
Url
アクセサ public TranscodingTextInputStream.save-bytes-for-character-encoding-reset?:
bool セッター public TranscodingTextInputStream.save-bytes-for-character-encoding-reset?:
bool
フィールド public-get protected-set TranscodingTextInputStream.underlying-input-stream:
ByteInputStream
アクセサ public TranscodingTextInputStream.when-last-modified:#
DateTime
public | {TranscodingTextInputStream.character-encoding-reset character-encoding:CharEncoding,save-bytes-for-character-encoding-reset?:bool = false }:void |
public | {TranscodingTextInputStream.close}:void |
fill-data: | ストリームの元になる配列や集合体からより多くのデータを取得するために、バッファリングに関するコードで呼び出されるルーチン。 |
protected | {TranscodingTextInputStream.fill-data}:(int, eof?:bool) |
(コンストラクタ)
public | {TranscodingTextInputStream.default stream:ByteInputStream,close-stream-on-close?:bool = true,buffer-size:int = {calculate-instances-per-memory-size
default-buffer-memory-size, char
},unread-size:int = {max {min 4, buffer-size div 4}, 1},character-encoding:CharEncoding = CharEncoding.none-specified,save-bytes-for-character-encoding-reset?:bool = false } |
close-stream-on-close?: このクラスの close メソッドが、基礎となるストリーム上で close を呼び出すかどうかを指定します。
buffer-size: メイン バッファが保持するアイテムの概数。
unread-size: 連続する unread-one 操作に対して保持可能なアイテムの概数。
character-encoding: バイトを文字に変換する際に使用する
CharEncoding。既定値は
CharEncoding.none-specified で、ストリームの先頭のマーカーに基づいて適切なエンコーディングの決定を行ないます。
(フィールド)
protected constant TranscodingTextInputStream._bytes:#
ByteArray
この項目はサポートされていません。内部使用限定となっています。
(フィールド)
protected TranscodingTextInputStream._bytes-valid-end:
int
この項目はサポートされていません。内部使用限定となっています。
(フィールド)
protected TranscodingTextInputStream._bytes-valid-start:
int
この項目はサポートされていません。内部使用限定となっています。
(フィールド)
protected TranscodingTextInputStream._character-encoding:
CharEncoding
この項目はサポートされていません。内部使用限定となっています。
(フィールド)
protected TranscodingTextInputStream._not-at-stream-start?:
bool
この項目はサポートされていません。内部使用限定となっています。
(アクセサ)
アクセサ public TranscodingTextInputStream.character-encoding:
CharEncoding 読み込まれているバイトの現在の文字エンコーディングです。バイトを文字コードに変換する方法を定義します。
注意事項
(アクセサ)
アクセサ protected inline TranscodingTextInputStream.fill-data-allow-short-read-supported?:
bool fill-data が short read のサポートを許可するかどうかを示します。
注意事項
fill-data の呼び出し方法を決定する際にこれを調べることができます。
(アクセサ)
アクセサ protected TranscodingTextInputStream.fill-data-non-blocking-supported?:
bool fill-data が non-blocking のサポートを許可するかどうかを示します。
注意事項
fill-data の呼び出し方法を決定する際にこれを調べることができます。
(アクセサ)
アクセサ public TranscodingTextInputStream.open?:
bool このストリームが現在開いているかどうかを示します。Stream-of.close が呼び出されると false を返します。
注意事項
オーバーライド
サブクラスにはこのメソッドを実装する必要があります。
(アクセサ)
アクセサ public TranscodingTextInputStream.origin-url:#
Url このストリームを開いた Url を返します。そのような Url が存在しない場合は null を返します。
例
(アクセサ)
アクセサ public TranscodingTextInputStream.save-bytes-for-character-encoding-reset?:
bool セッター public TranscodingTextInputStream.save-bytes-for-character-encoding-reset?:
bool save-bytes-for-character-encoding-reset? の値を設定します。
注意事項
この
TranscodingTextInputStream の作成時に
save-bytes-for-character-encoding-reset? を
false に設定した場合、またはすでに
false に設定されていてストリームにデータが読み込まれている場合、これを呼び出して
save-bytes-for-character-encoding-reset? を
true に設定することはできません。
(フィールド)
public-get protected-set TranscodingTextInputStream.underlying-input-stream:
ByteInputStream
(アクセサ)
アクセサ public TranscodingTextInputStream.when-last-modified:#
DateTime 元のデータの最終変更時刻 (特定できる場合)。
説明
基となるデータが最後に修正された時間がわかる場合は、その時間を返します。そうでなければ、null を返します。
http: URL を基にして作成されたストリームの場合は、存在すれば
Last-Modified HTTP ヘッダーをパースした時間となります。
DefaultBufferedInputStream-of のような他のストリームをラップしたストリームの場合は、一般的に基になるストリームの値となります。
それ以外のストリームは null を返します。
(メソッド)
ストリームから非同期に読み込みを行います。
プログラミング注意事項
n: 読み込む最大量を示す int64 キーワード。既定値は max-int64 で、ストリームの最後まで読み込みます。
partial?:
n 個のアイテムが読み込まれる前、またはストリームの最後に達する前に
AsyncStreamReadEvent を送信するかどうかを示す
bool キーワード。つまり、読み込まれるチャンクごとにイベントを送信するかどうか、
append? が
true の場合にチャンクごとにファイル関連イベントを送信するかどうかどうかを指定することにもなります。既定値は
false です。
append?:
AsyncStreamReadEvent のいずれかが新規のデータだけを受け取るか、それまでに読み込まれた全データの継続バッファを受け取るかを示す
bool キーワード。さらに、
out が指定されている場合は、これに追加するかまたはクリアしてから使用するかを示します。既定値は
false です。
戻り値
注意事項
EventHandler は引数で指定された順序とは逆の順番で呼び出され、これを使用して、読み込みが終了したときに (イベントの
exception フィールドが非 null になるか、または
done? フラグが true になった場合)
Stream を閉じることができます。
AsyncStreamReadEvent のデータは
{Array-of t} です。
(メソッド)
Url から非同期に文字列を読み込みます。
プログラミング注意事項
n: 読み込む最大量を示す int64 キーワード。既定値は max-int64 で、ストリームの最後まで読み込みます。
partial?:
n 個のアイテムが読み込まれる前、またはストリームの最後に達する前に
AsyncStreamReadEvent を送信するかどうかを示す
bool キーワード。つまり、読み込まれるチャンクごとにイベントを送信するかどうか、
append? が
true の場合にチャンクごとにファイル関連イベントを送信するかどうかどうかを指定することにもなります。既定値は
false です。
append?:
AsyncStreamReadEvent のいずれかが新規のデータだけを受け取るか、それまでに読み込まれた全データの継続バッファを受け取るかを示す
bool キーワード。さらに、
buf が指定されている場合は、これに追加するかまたはクリアしてから使用するかを示します。既定値は
false です。
戻り値
注意事項
EventHandler は引数で指定された順序とは逆の順番で呼び出され、これを使用して、読み込みが終了したときに (イベントの
exception フィールドが非 null になるか、または
done? フラグが true になった場合)
Stream を閉じることができます。
AsyncStreamReadEvent のデータは
StringBuf です。
(メソッド)
public | {TranscodingTextInputStream.character-encoding-reset character-encoding:CharEncoding,save-bytes-for-character-encoding-reset?:bool = false }:void |
(メソッド)
public | {TranscodingTextInputStream.close}:void |
(メソッド)
protected | {TranscodingTextInputStream.fill-data}:(int, eof?:bool) |
ストリームの元になる配列や集合体からより多くのデータを取得するために、バッファリングに関するコードで呼び出されるルーチン。
buf: データを読み込む配列。バッファまたはユーザー指定の配列のいずれかです。
min-read: データの終わりに到達しなかった場合に、このルーチンが復帰する前に読み込む最小データ量。
start: 読み込まれたデータを格納する buf の開始位置。
max-read: このルーチンが復帰する必要がある前に buf に読み込める最大データ量。buf の使用可能領域を超えてもよく、その場合は読み込まれたデータ量に応じて buf のサイズが変更されます。
戻り値
読み込まれたアイテム数、および EOF に到達したかどうかを返します。データが読み込まれた場合でも eof? が true になる場合がありますが、このような組み合わせの必要はありません。実装においては、データが存在しない場合にのみ eof? が true を返すような選択が可能です。
注意事項
buf は必要に応じてサイズが増えることがあっても、読み込んだデータ量のサイズには縮小されません。
min-read に
0 を指定すると、呼び出し側は、
non-blocking? を
true に設定して
InputStream-of.read を呼び出したときと基本的に同じ意味に解釈します。
min-read に
1 を指定すると、呼び出し側は、
allow-short-read? を
true に設定して
InputStream-of.read を呼び出したときと基本的に同じ意味に解釈します。一般に、
min-read と
max-read の値が異なる場合、
min-read のデータ量が読み込まれた後に負担が生じたり時間のかかるような処理をルーチンは実行せず、直ちに
max-read のデータ量の読み込みが可能になるときにこれを実行するようにします。
オーバーライド
データ ソースからのデータをバッファに格納するには、サブクラスでこのメソッドをオーバーライドします。