文書   >   Foundation   >   Stream,Socket   >   InputStream
クラス
InputStream
読み取り専用ストリーム機能を提供するストリーム。
概観
InputStream は、Core Foundation の 対応する CFReadStream を使用した "通話無料でブリッジ" されています。通話無料のブリッジの詳細については、通話無料でブリッジ を参照してください。
サブクラス化する際の注意
NSInputStream は、ストリームデータへの標準的な読み取り専用アクセスを提供する NSStream の具象サブクラスからなる クラスクラスタ の抽象スーパークラスです。ストリームデータへのアクセスを必要とするほとんどの状況では NSInputStream で十分ですが、より特殊な動作が必要な場合は、NSInputStream のサブクラスを作成できます (たとえば、ストリーム内のデータに統計情報を記録する場合など)。
オーバーライドすべきメソッド
NSInputStream のサブクラスを作成するには、サポートされているストリームデータの型のイニシャライザを実装し、既存のイニシャライザを適切に再実装する必要があります。以下のメソッドの完全な実装も提供しなければなりません。
- read(_:maxLength:)
- getBuffer(_:length:)
- hasBytesAvailable
現在の読み取りインデックスから、ストリームの 2 番目のパラメータで指定されたバイト数を取り出し、クライアントが提供するバッファ (最初のパラメータ) に格納します。バッファは、2 番目のパラメータで指定されたサイズでなければなりません。バッファに格納されている実際のバイト数を返します。ストリームに何も残っていない場合は、0 を返します。次の読み取り操作のために、インデックスをストリームにリセットします。
0 (1) を返してサブクラスに割り当てられたバッファへのポインタ (最初のパラメータ) を返します。2 番目のパラメータで、バッファに実際に格納されたバイト数を参照で返します。バッファの内容は、次のストリーム操作までのみ有効です。バッファ内のデータにアクセスできない場合は false を返します。それ以外の場合は true を返します。このメソッドがストリームの型に適切でない場合、false を返すことがあります。
ストリームで読み込むべきデータがもっとある場合は true を返し、そうでない場合は false を返します。NSInputStream と意味的に互換性を持たせたい場合は、バイトが使用可能かどうかを判断するために読み取りを試みなければならない場合は true を返します。
トピックス
ストリームの作成
init(data: Data)
指定された NSData オブジェクトから読み取るため NSInputStream オブジェクトを初期化して返します。
init?(fileAtPath: String)
指定されたパスのファイルからデータを読み込む NSInputStream オブジェクトを初期化して返します。
指定された URL のファイルからデータを読み込む NSInputStream オブジェクトを初期化して返します。
ストリームの使用
func read(UnsafeMutablePointer<UInt8>, maxLength: Int)
指定されたバイト数まで、指定されたバッファに読み込みます。
func getBuffer(UnsafeMutablePointer<UnsafeMutablePointer<UInt8>?>, length: UnsafeMutablePointer<Int>)
参照によって、読み出しバッファへのポインタ、および参照可能なバイト数を返します。バッファが使用可能かどうかを示すブール値を返します。
var hasBytesAvailable: Bool
受信者が読み込み可能なバイト数を持っているかどうかを示すブール値。
関連
以下よりの継承
Stream
以下への準拠
CVarArg,
Equatable,
Hashable
以下も見よ
ストリーム
class Stream
ストリームを表す抽象クラス。
class OutputStream
書き込み専用のストリーム機能を提供するストリーム。
protocol StreamDelegate
ストリームインスタンスのデリゲートがストリーム上のイベントを処理するために使用するインターフェイス。