TranscodingTextOutputStream (クラス)
public TranscodingTextOutputStream {inherits TextOutputStream}
パッケージ: CURL.IO.STREAM
直接継承しているサブクラス: TranscodingSeekableTextOutputStream

ByteOutputStream からの文字を、適切な文字エンコーディングに基づいてバイト列に変換するクラス。

例外のスロー

TranscodingIOException — 文字をバイトに変換できない場合。

コンストラクタ
default:
コンストラクタ public {TranscodingTextOutputStream.default
stream:ByteOutputStream,
close-stream-on-close?:bool = true,
character-encoding:CharEncoding,
want-byte-marker?:bool,
buffer-size:int = -1,
byte-buffer-size:int = -1
}

プロパティ
_not-at-stream-start?:
フィールド protected TranscodingTextOutputStream._not-at-stream-start?:bool
_want-byte-marker?:
フィールド protected TranscodingTextOutputStream._want-byte-marker?:bool
character-encoding:書き込まれているバイトの現在の文字エンコーディング。文字をバイトに変換して書き込む方法を定義します。
アクセサ public TranscodingTextOutputStream.character-encoding:CharEncoding
open?:このストリームが現在開いているかどうかを示します。Stream-of.close が呼び出されると false を返します。
アクセサ public TranscodingTextOutputStream.open?:bool
origin-url:このストリームを開いた Url を返します。そのような Url が存在しない場合は null を返します。
アクセサ public TranscodingTextOutputStream.origin-url:#Url
underlying-output-stream:バッファに格納される ByteOutputStream。コード変換されたテキストを取得します。
フィールド public-get protected-set TranscodingTextOutputStream.underlying-output-stream:ByteOutputStream
write-buffer-data-size:バッファ内のフラッシュされていないデータ量を示します。
アクセサ public TranscodingTextOutputStream.write-buffer-data-size:int
プロパティ 継承 BufferedOutputStream-of: write-buffer-full?, write-buffer-size
プロパティ 継承 Stream-of: non-blocking-supported?

メソッド
close:ストリームを閉じます。呼び出されると、ストリームを使用不可能にして Stream-of.open?false を返すことを確かめます。
public {TranscodingTextOutputStream.close}:void
flush:self が収集した、バッファされた出力をフラッシュします。
public {TranscodingTextOutputStream.flush
non-blocking?:bool = false,
allow-short-write?:bool = false
}:void
write:アイテムの ArrayOutputStream-of に書き込みます。
public {TranscodingTextOutputStream.write
data:{Array-of char},
start:int = 0,
n:int = data.size - start,
allow-short-write?:bool = false,
non-blocking?:bool = false
}:int
write-one:アイテムを OutputStream-of に書き込みます。
public {TranscodingTextOutputStream.write-one c:char}:void
write-one-string:文字列を書き込みます。
public {TranscodingTextOutputStream.write-one-string
str:StringInterface,
start:int = 0,
length:int = str.size - start
}:int
メソッド 継承 OutputStream-of: async-write
メソッド 継承 Stream-of: verify-open
メソッド 継承 Object: object-describe, object-describe-for-debugging, object-serialize



コンストラクタ詳細
default (コンストラクタ)
public {TranscodingTextOutputStream.default
stream:ByteOutputStream,
close-stream-on-close?:bool = true,
character-encoding:CharEncoding,
want-byte-marker?:bool,
buffer-size:int = -1,
byte-buffer-size:int = -1
}
stream: バッファに格納され文字にコード変換される ByteOutputStream
close-stream-on-close?: このクラスの close メソッドが、基礎となるストリーム上で close を呼び出すかどうかを指定します。
character-encoding: 文字をバイトに変換する際に使用する CharEncoding
want-byte-marker?: character-encodingCharEncoding に対するバイト マーカーが存在する場合にこれを書き出すかどうかを示します。
buffer-size: 使用は推奨されておらず、現在は使われていません。バッファリングは stream のみで実行されます。
byte-buffer-size: 使用は推奨されておらず、現在は使われていません。バッファリングは stream のみで実行されます。



プロパティ詳細
_not-at-stream-start? (フィールド)
protected TranscodingTextOutputStream._not-at-stream-start?:bool
この項目はサポートされていません。内部使用限定となっています。


_want-byte-marker? (フィールド)
protected TranscodingTextOutputStream._want-byte-marker?:bool
この項目はサポートされていません。内部使用限定となっています。


character-encoding (アクセサ)
アクセサ public TranscodingTextOutputStream.character-encoding:CharEncoding

書き込まれているバイトの現在の文字エンコーディング。文字をバイトに変換して書き込む方法を定義します。

注意事項

実際にバイトを書き込まない TextOutputStream では、これは意味がありません。


open? (アクセサ)
アクセサ public TranscodingTextOutputStream.open?:bool

このストリームが現在開いているかどうかを示します。Stream-of.close が呼び出されると false を返します。

注意事項

InputStream-of および OutputStream-of の既定の実装で使用します。ストリームが開いていない場合は多くの操作でエラーが発生します。

オーバーライド

サブクラスにはこのメソッドを実装する必要があります。


origin-url (アクセサ)
アクセサ public TranscodingTextOutputStream.origin-url:#Url

このストリームを開いた Url を返します。そのような Url が存在しない場合は null を返します。

{read-open {url "file://c:/foo.txt"}}.origin-url Url file://c:/foo.txt (そのようなファイルが存在すると仮定して) を返します。

一方、{{TextInputStream-from String} "foo"}.origin-urlnull を返します。


underlying-output-stream (フィールド)
public-get protected-set TranscodingTextOutputStream.underlying-output-stream:ByteOutputStream

バッファに格納される ByteOutputStream。コード変換されたテキストを取得します。



write-buffer-data-size (アクセサ)
アクセサ public TranscodingTextOutputStream.write-buffer-data-size:int

バッファ内のフラッシュされていないデータ量を示します。






メソッド詳細
close (メソッド)
public {TranscodingTextOutputStream.close}:void

ストリームを閉じます。呼び出されると、ストリームを使用不可能にして Stream-of.open?false を返すことを確かめます。

注意事項

これは OutputStream-of.flush を呼び出してからストリームを閉じます。

オーバーライド

この実装者は、try ブロック内の OutputStream-of.flush を呼び出す必要があります。その場合、try ブロックの finally 部分のストリームを閉じるコードを使用します。


flush (メソッド)
public {TranscodingTextOutputStream.flush
non-blocking?:bool = false,
allow-short-write?:bool = false
}:void

self が収集した、バッファされた出力をフラッシュします。

オーバーライド

非抽象サブクラスにより提供される必要があります。実装では次のようなコードを含める必要があリます。
{if not self.open? then
    {throw {new IOException, {format "%s not open", self}}}
}
このメソッドの実装の上部に記述します。

例外のスロー

IOException — ディスクの容量不足などの理由でデータを書き込めない場合。


write (メソッド)
public {TranscodingTextOutputStream.write
data:{Array-of char},
start:int = 0,
n:int = data.size - start,
allow-short-write?:bool = false,
non-blocking?:bool = false
}:int

アイテムの ArrayOutputStream-of に書き込みます。

data: 送信されるオブジェクトの Array
start: オブジェクトはこのキーワード パラメータで指定されるスロットから開始して、配列 (以降 a) から書き込まれます。既定は 0 です。
n: 書き込むオブジェクトの最大数。既定は a.size - start です。
allow-short-write?: この呼び出しで n 未満のデータが書き込まれるか、データの配列全体が書き込まれるかどうかを示します。既定は false です。ほとんどのストリームではサポートされていませんが、サポートされていない場合でもエラーや例外は発生しません。これはネットワーキングを実装する状況で使用します。
non-blocking?: 呼び出しの非ブロッキング実行、つまりすぐに使用可能なデータがない場合はデータを書き込まずにすぐに返すかどうかを示します。既定は false です。これが true の場合は、 allow-short-write? は暗黙的に true になります。

戻り値

書き込まれるデータの量。 allow-short-write? または non-blocking?true でない限り、常に n になります。この場合、データ量は、直ちに書き込みできる最大量になりますが、 allow-short-write? だけが true の場合は少なくとも 1 が代入されます。


write-one (メソッド)
public {TranscodingTextOutputStream.write-one c:char}:void

アイテムを OutputStream-of に書き込みます。

注意事項

ストリームが開いていない時にこのメソッドを呼び出すとエラーが発生します。サブクラスにこのメソッドを実装する必要があります。

オーバーライド

非抽象サブクラスにより提供される必要があります。実装では次のようなコードを含める必要があリます。
{if not self.open? then
    {throw {new IOException, {format "%s not open", self}}}
}
このメソッドの実装の上部に記述します。


write-one-string (メソッド)
public {TranscodingTextOutputStream.write-one-string
str:StringInterface,
start:int = 0,
length:int = str.size - start
}:int

文字列を書き込みます。

str: 書き込まれる文字列。
start: 書き込みを開始する str のインデックス。
n: 書き込む文字の数。

戻り値

書き込まれた文字数を返します。

説明

str から selfn 文字を書き込みます。start で指定される位置から開始します。