C#如何在偏移处写入一个字节?

时间:2009-07-11 18:34:45

标签: c# io byte

我试图在文件中的某个位置写一个字节。这就是我现在正在使用的内容:

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

问题是BinaryWriter.Write(args)在该位置写入一个四字节有符号整数。我希望只在特定位置写一个字节。然后可能两个字节在哪里,我如何指定要写入多少字节?

3 个答案:

答案 0 :(得分:3)

变化

bw.Write(0xB0);

bw.Write((byte)0xB0);

答案 1 :(得分:2)

完全没有必要使用高级BinaryWriter只是为流写一个简单的字节 - 这样做更有效和整洁:

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

(一般来说,你也不应该在将BinaryWriter附加到你的流之后真正寻求 - BinaryWriter应该控制流,并且“在它背后”改变东西“有点脏”

答案 2 :(得分:1)

您可以转换为字节:

bw.Write((byte)0xB0);

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