既存の (そして不変の) テキスト ファイルの形式に従うインデックス ファイルを書き込もうとしています。
ファイルは固定長で、11 バイトの文字列 (ASCII) とそれに続く 4 バイトの長さで、1 行あたり合計 15 バイトになります。
多分私は少しぼんやりしているのですが、これを行う簡単な方法はありますか?1 行を書き込むために 2 つのストリーム (文字列用とバイト用) を開く必要があるように感じますが、それは間違っているように感じます。
ヒントはありますか?
を使用して、 /と s の配列のBitConverter
間で変換できます。このようにして、11 バイトの後に 4 バイト、さらに 11 バイト、というように書き込むことができます。int
long
byte
byte[] intBytes = BitConverter.GetBytes(intValue); // returns 4-byte array
バイトに変換中: BitConverter.GetBytes(int)
。
に戻すint
:BitConverter.ToInt32(byte\[\], int)
クロスプラットフォーム ソリューションを開発している場合は、ドキュメントの次の注意事項に注意してください (uriDium
コメントに感謝します)。
GetBytes メソッドによって返される配列内のバイトの順序は、コンピューターのアーキテクチャがリトル エンディアンかビッグ エンディアンかによって異なります。