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

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 附加到流后,您也不应该真正 Seek - BinaryWriter 应该控制流,并且“在其背后”更改内容有点脏)

于 2009-07-11T18:51:33.057 回答
1

您可以转换为字节:

bw.Write((byte)0xB0);

这应该会导致调用正确的重载版本的 Write。

于 2009-07-11T18:37:17.983 回答