Streamはその種類やコンストラクタでの設定によって書き込み可能か、読み込み可能か異なります。 Streamが書き込み可能かどうかといったケーパビリティを実行時に知るには、CanRead・CanWrite・CanSeekの各プロパティを参照します。
次の例は、様々なStreamに対してそのケーパビリティを調べた例です。
各ケーパビリティと、該当する操作のメソッド・プロパティは次のとおりです。
ケーパビリティのプロパティ | 該当するStreamの操作 |
---|---|
CanWrite | Write, WriteByte, Flush, SetLength |
CanRead | Read, ReadByte |
CanSeek | Seek, SetLength, Position(プロパティの設定) |
ケーパビリティがfalse
になっている操作を行おうとすると、例外NotSupportedExceptionがスローされます。 例えば、CanSeekがfalse
のStreamに対してSeekメソッドやSetLengthメソッドを呼び出そうとすると例外エラーとなります。
上記の例で使用している標準入力・標準出力のStreamの取得については自プロセスの標準入出力 §.標準ストリームの取得で詳しく解説しています。