1

ファイル内の特定の場所に 1 バイトを書き込もうとしています。これは私が現在使用しているものです:

BinaryWriter bw = new BinaryWriter(File.Open(filename, FileMode.Open));
bw.BaseStream.Seek(0x6354C, SeekOrigin.Begin);
bw.Write(0xB0);
bw.Close();

問題は、BinaryWriter.Write(args) が 4 バイトの符号付き整数をその位置に書き込むことです。特定の場所に 1 バイトだけ書き込みたい。そして、後でおそらく 2 バイト、書き込むバイト数を指定する方法を教えてください。

4

3 に答える 3

3

変化する

bw.Write(0xB0);

bw.Write((byte)0xB0);
于 2009-07-11T18:36:33.383 に答える
2

単純なバイトをストリームに書き込むためだけに高レベルのBinaryWriterを使用する必要はまったくありません。これを行うだけで、より効率的で整頓されます。

Stream outStream = File.Open(filename, FileMode.Open);
outStream.Seek(0x6354C, SeekOrigin.Begin);
outStream.WriteByte(0xb0);

(一般に、BinaryWriterをストリームにアタッチした後で実際にシークするべきではありません。BinaryWriterがストリームを制御する必要があり、「背後」で物事を変更するのは少し汚いです)

于 2009-07-11T18:51:33.057 に答える
1

バイトにキャストできます:

bw.Write((byte)0xB0);

これにより、正しいオーバーロードされたバージョンの Write が呼び出されるはずです。

于 2009-07-11T18:37:17.983 に答える