1

既存の (そして不変の) テキスト ファイルの形式に従うインデックス ファイルを書き込もうとしています。

ファイルは固定長で、11 バイトの文字列 (ASCII) とそれに続く 4 バイトの長さで、1 行あたり合計 15 バイトになります。

多分私は少しぼんやりしているのですが、これを行う簡単な方法はありますか?1 行を書き込むために 2 つのストリーム (文字列用とバイト用) を開く必要があるように感じますが、それは間違っているように感じます。

ヒントはありますか?

4

1 に答える 1

3

を使用して、 /と s の配列のBitConverter間で変換できます。このようにして、11 バイトの後に 4 バイト、さらに 11 バイト、というように書き込むことができます。intlongbyte

byte[] intBytes = BitConverter.GetBytes(intValue); // returns 4-byte array

バイトに変換中: BitConverter.GetBytes(int)

に戻すint:BitConverter.ToInt32(byte\[\], int)

クロスプラットフォーム ソリューションを開発している場合は、ドキュメントの次の注意事項に注意してください (uriDiumコメントに感謝します)。

GetBytes メソッドによって返される配列内のバイトの順序は、コンピューターのアーキテクチャがリトル エンディアンかビッグ エンディアンかによって異なります。

于 2012-08-22T15:28:15.443 に答える