0

バイナリファイルを読み込もうとしましたが、たとえば次のような特定のパターンで書かれていました:string, string, byte

私はウェブをサーフィンして、このコードを見つけました:

while (br.BaseStream.Position<br.BaseStream.Length)
{
    br.ReadString();
    br.ReadString();
    br.ReadByte(); 
}

簡単なコードですが、基になるストリーム(BaseStream)が何を意味するのか理解できませんか? 誰かが私にそれについて簡単に説明できますか?

4

1 に答える 1

4

.NET は、データを読み書きするためのさまざまなオブジェクトを提供します。基本的に、異なるストリームに書き込みまたは読み取る DataWriters と DataReader があります。ストリームは、データ ソース (ファイルなど) からアプリケーション メモリ (またはその逆) へのデータ フローを表します。

定義された方向でストリームにアクセスするには、リーダーまたはライターを使用できます。BinaryReaderは、データ リーダーの一例です。ストリームからバイナリデータを読み取ることになっています。ストリームは通常、 と呼ばれる基本クラスから継承しStreamます。さまざまなデータ ソースを表すさまざまな種類のストリームがあります。たとえば、FileStreamは HDD 上のファイルにデータをMemoryStream読み書きするのに対し、 は RAM にデータを読み書きします。したがって、ストリームの実装は、データが格納されている場所を記述します。

DataReaders または DataWriters は、データの格納方法を記述します。たとえば、 yourBinaryReaderはバイトシーケンスをTextReader読み取りますが、 a は指定されたエンコーディングでテキストを読み取ります。ただし、どちらも同じストリームで使用できます。

質問に戻るには:BinaryReaderストリームからバイナリ データを読み取ります。BaseStreamプロパティは、リーダーがデータを読み取るストリームのインスタンスを返します。BinaryReaderこれが、ストリーム インスタンスで初期化する必要がある理由です。どこからともなくバイナリ データを読み取るようにコンピュータに指示することはできません。;)

于 2012-12-04T13:02:44.750 に答える