(クラス)
行にグループ化される文字の InputStream。
public | {TextInputStream.read-line}:#StringBuf |
read-lines: | self から 最大 n 個の end-of-line-sequence-terminated String を (end-of-line も含めて) 取得し、out の start で指定されたスロット位置から配置します。 |
public | {TextInputStream.read-lines}:(lines:{Array-of StringBuf}, n-lines:int) |
public | {TextInputStream.read-one-line}:(buf:StringBuf, n:int) |
public | {TextInputStream.read-one-string buf:#StringBuf = null,append?:bool = false,n:int = {if append? and buf != null then
max-int - buf.size
else
max-int
} }:(buf:StringBuf, n:int) |
(アクセサ)
読み込まれているバイトの現在の文字エンコーディングです。バイトを文字コードに変換する方法を定義します。
注意事項
(メソッド)
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 | {TextInputStream.read-line}:#StringBuf |
self から 1 行の文字列を読み込みます。
buf: このパラメータを指定した場合、取得した文字列はここに格納されます (バッファはいつも先にクリアされます)。指定されていない場合は新規に割り当てられます。
newline-sequence: 行端を構成する文字を指定します。既定では、サポートされている改行シーケンスはすべて認識されます。
戻り値
結果の StringBuf を返します。buf が指定されている場合はそれが返され、指定されていない場合は新しい StringBuf を割り当ててそれを返します。戻り値が null の場合は、呼び出し時に self.end-of-stream? が true であったことを意味します。
説明
end-of-line シーケンスが検出されるか (このシーケンスは、取得された文字列の一部ではありませんが、インプットから除去されてます)、または self.end-of-stream? が true になるまで self から文字を読み込みます。
このメソッドは、self が開いていて、データが存在しない場合はブロックします。
short IO が原因で短い行が返されることはありませんが、self.end-of-stream? が true になっている場合に eol-sequence のない短い行が返される可能性があります。
注意事項
self がすでに閉じている場合はエラーになります。
(メソッド)
public | {TextInputStream.read-lines}:(lines:{Array-of StringBuf}, n-lines:int) |
非推奨
self から 最大 n 個の end-of-line-sequence-terminated String を (end-of-line も含めて) 取得し、out の start で指定されたスロット位置から配置します。
戻り値
結果を受け取った Array と、結果の数 (行数) を返します。2 番目の戻り値が 0 の場合は、呼び出し時に self.end-of-stream? が true であったことを意味します。その場合、1 番目の戻り値は null になります。
out: この {Array-of StringBuf} を指定すると、self から読み込まれた行を格納します。指定されていない場合、新しい {Array-of StringBuf} が割り当てられて返されます。
start: 1 行目を受け取る out 内のスロットを指定します。残りの行は後続のスロットに格納されます。
n: 読み込まれる行数を指定します。
eol-sequence: 行末を構成する文字を指定します。指定可能な値には、"\r" (キャリッジリターン)、"\n" (改行)、"\u2028" (Unicode の行末文字)、"\u2029" (Unicode の段落終了文字)、および "\r\n" があります。eol-sequence に null (既定値) を指定すると、"\r"、"\n"、"\u2028"、"\u2029" または "\r\n" のいずれのシーケンスも行末になります。
説明
最後に返される String は、self.end-of-stream? が true になって終了し、self が最後に eol-sequence ではないものを返した場合、eol-sequence-terminated にはなりません。
このメソッドは、n 行が読み込まれるか、self.end-of-stream? が true になるまで復帰しません。short IO が原因で短い行が返されることはありませんが、self.end-of-stream? が true になっている場合に eol-sequence のない短い行が返される可能性があります。
このメソッドは、self が開いていて、データが存在しない場合はブロックします。
(メソッド)
public | {TextInputStream.read-one-line}:(buf:StringBuf, n:int) |
非推奨
self から 1 行の文字列を読み込みます。
buf: このパラメータが指定されている場合、取得した文字はここに格納されます。指定されていない場合は、新規に割り当てられます。
append?: このパラメータが true の場合、取り出された文字は buf の最後に追加されます。
eol-sequence: 行末を構成する文字を指定します。指定可能な値には、"\r" (キャリッジリターン)、"\n" (改行)、"\u2028" (Unicode の行末文字)、"\u2029" (Unicode の段落終了文字)、および "\r\n" があります。eol-sequence に null (既定値) を指定すると、"\r"、"\n"、"\u2028"、"\u2029" または "\r\n" のいずれのシーケンスも行末になります。
戻り値
文字を受け取った StringBuf および受け取った文字数を返します。buf が指定されている場合はそれが返され、指定されていない場合は新しい StringBuf を割り当ててそれを返します。2 番目の戻り値が 0 の場合は、呼び出し時に self.end-of-stream? が true であったことを意味します。
説明
end-of-line シーケンスが検出されるか (このシーケンスも文字列の一部として返され、入力から除去されることはありません)、または self.end-of-stream? が true になるまで self から文字を読み込みます。
このメソッドは、self が開いていて、データが存在しない場合はブロックします。
short IO が原因で短い行が返されることはありませんが、self.end-of-stream? が true になっている場合に eol-sequence のない短い行が返される可能性があります。
注意事項
self がすでに閉じている場合はエラーになります。
(メソッド)
public | {TextInputStream.read-one-string buf:#StringBuf = null,append?:bool = false,n:int = {if append? and buf != null then
max-int - buf.size
else
max-int
} }:(buf:StringBuf, n:int) |
指定された文字数の文字列を self から取得します。
buf: このパラメータが指定されている場合、取得した文字はここに格納されます。指定されていない場合は、新規に割り当てられます。
append?: このパラメータが true の場合、取り出された文字は buf の最後に追加されます。
n: 取り出す文字数。このパラメータが指定されていない場合、このメソッドは self.end-of-stream? が true になるまで文字の読み込みを続けます。
戻り値
文字を受け取った StringBuf および受け取った文字数を返します。buf が指定されている場合はそれを返し、指定されていない場合は新しい StringBuf を割り当ててそれを返します。
2 番目の戻り値が 0 の場合は、self.end-of-stream? が true であることを意味します。
説明
このメソッドは、
n 個の文字が読み込まれるか、
self.end-of-stream? が
true になるまで復帰しません。
このメソッドは、
self が開いていて、データが存在しない場合はブロックします。
このメソッドは、
Array の代わりに
StringBuf が対象である点を除けば、
InputStream-of.read と同じような意味になります。
注意事項
append? フラグは buf が指定されている場合のみ効果があります。
self が現在開いていない場合はエラーになります。
n < 0 の場合もエラーになります。